3 คะแนน โดย GN⁺ 2024-07-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Windows Deployment Image Customization Kit เป็นเครื่องมือสำหรับดีพลอยอิมเมจ Windows ที่ใช้เชลล์คำสั่งแบบเนทีฟ โดยในหัวข้อบน HN ถูกแนะนำว่าเป็นเครื่องมือสร้างสภาพแวดล้อมกู้คืน Windows และ USB ที่บูตได้ ขนาด 200KB
  • เกี่ยวกับ SecureBoot ผู้พัฒนารับทราบว่าหากใช้ bootmgfw_EX.efi ในโฟลเดอร์ EFI_EX ภายใน boot.wim แทน bootmgfw.efi ปกติ จะมีปัญหาความเข้ากันได้น้อยกว่า
  • ขณะนี้ยังอยู่ในสถานะรอดูว่า Microsoft จะทำให้เป็นมาตรฐานไปในทิศทางใด และหากทิศทางยังไม่ชัดเจน มีแผนจะเปลี่ยนไปดึง EFI_EX bootloader มาใช้ หรือเปิดให้เลือกได้ระหว่างสองวิธี
  • ตอนนี้ผู้ใช้สามารถนำ bootloader จากตำแหน่ง EFI_EX มาใส่ไว้ใน โฟลเดอร์ cache เอง แล้วเริ่มอัปเดตไฟล์บูตภายใน recovery ได้
  • หากปิดใช้งาน SecureBoot ก็ยังสามารถใช้งาน Windows ได้ตามปกติต่อไป จนกว่า Microsoft จะตัดสินใจว่าจะทำให้ bootloader ใดเป็นมาตรฐาน

เครื่องมือดีพลอยอิมเมจ Windows

  • Windows Deployment Image Customization Kit เป็นเครื่องมือสำหรับดีพลอยอิมเมจ Windows ที่ใช้เชลล์คำสั่งแบบเนทีฟ
  • ในหัวข้อบน HN โปรเจกต์นี้ถูกแนะนำว่าเป็นเครื่องมือสร้างสภาพแวดล้อมกู้คืน Windows และ USB ที่บูตได้ ขนาด 200KB
  • README มีภาพหน้าจอ GUI และภาพหน้าจอ MenuScript รวมอยู่ด้วย

SecureBoot และการจัดการ bootloader

  • หากใช้ bootmgfw_EX.efi ในโฟลเดอร์ EFI_EX ภายใน boot.wim แทน bootmgfw.efi ปกติ จะมีปัญหาความเข้ากันได้กับ SecureBoot น้อยกว่า
  • เหตุผลที่ยังไม่นำการเปลี่ยนแปลงไปใช้ทันที คือทิศทางของ Microsoft ยังไม่ชัดเจน
  • หากทิศทางของ Microsoft ยังไม่ชัดเจน อาจมีการนำหนึ่งในการเปลี่ยนแปลงต่อไปนี้มาใช้
    • ดึง bootloader จากโฟลเดอร์ EFI_EX ทางเลือกมาใช้
    • ทำให้ เลือกได้ ระหว่างวิธี bootloader สองแบบ
  • ขณะนี้อยู่ในสถานะที่พยายามหลีกเลี่ยงสถานการณ์ที่เปลี่ยนตอนนี้แล้วต้องย้อนกลับในภายหลัง

วิธีรับมือแบบแมนนวลที่ทำได้ในตอนนี้

  • ผู้ใช้สามารถนำ bootloader จากตำแหน่ง EFI_EX มาใช้เองได้
  • ใส่ bootloader ที่นำมาไว้ใน โฟลเดอร์ cache แล้วเริ่มอัปเดตไฟล์บูตภายใน recovery ได้
  • หากปิดใช้งาน SecureBoot จะสามารถใช้งาน Windows ได้ตามปกติจนกว่า Microsoft จะตัดสินใจทิศทางของ bootloader มาตรฐาน

การเผยแพร่และเอกสาร

  • มิเรอร์:
    • MajorGeeks: มิเรอร์ Windows Deployment Image Customization Kit
    • Softpedia: มิเรอร์ Windows Deployment Image Customization Kit
  • เอกสาร:
    • GitHub documentation: เอกสารโปรเจกต์
    • Microsoft TechNet Wiki archive: เอกสารการสร้างสภาพแวดล้อม Windows PE สำหรับกู้คืนและดีพลอยที่บูตได้ในเชลล์คำสั่ง
    • YouTube ช่อง: ช่องวิดีโอที่เกี่ยวข้อง

1 ความคิดเห็น

 
GN⁺ 2024-07-29
ความคิดเห็นจาก Hacker News
  • นี่คือ ไฟล์แบตช์ที่ใหญ่ที่สุด เท่าที่เคยเห็นมาเลย สมัยมัธยมผมเคยทำไฟล์ประมาณ 200 บรรทัดแล้วยังคิดว่าเยอะเกินไป แต่ความมุ่งมั่นที่ผลักดันแบตช์ไปได้ถึงขนาดนี้น่าทึ่งจริง ๆ
    ผมรู้จักฟีเจอร์คล้ายการเรียกฟังก์ชันปลอม ๆ หรือไวยากรณ์แปลก ๆ อยู่บ้าง แต่แค่ไล่อ่านผ่าน ๆ ก็เจอหลายอย่างที่ไม่เคยเห็นมาก่อน ปกติพวก “X in Y KiB” มักจะเป็นการเล่นพิสดารกับลิงเกอร์ แต่แบบนี้สดใหม่ดี แล้วชื่อฟีเจอร์ “Windows To Go” กับ “Windows To Stay” ก็ค่อนข้างขำ

    • พูดถึงไฟล์แบตช์ขนาดใหญ่ ถ้าเคยทำซอฟต์ม็อด Wii ก็น่าจะเคยใช้ ModMii และมันเป็นโปรแกรมแบตช์ที่ใหญ่ที่สุดเท่าที่ผมเคยเห็นแบบไม่ต้องสงสัย
      สคริปต์หลัก [1] เป็นไฟล์แบตช์ที่ใหญ่กว่า 1MB เมื่อก่อนผมเคยอินกับการม็อด Wii อยู่พอสมควร และจำได้ว่าเคยคุยเรื่องจิปาถะเกี่ยวกับแบตช์กับคนเขียนสคริปต์นั้นอยู่สองสามครั้ง นึกภาพไม่ออกเลยว่าจะบำรุงรักษาไฟล์ขนาดนั้นได้ยังไง
      [1] https://github.com/modmii/modmii.github.io/blob/master/Suppo...
    • Windows To Go” เป็นชื่อทางการของฟีเจอร์ Windows ในอดีต
      ในเมื่อ PowerShell ถูกติดตั้งมาเป็นค่าเริ่มต้นแล้ว การเขียนสคริปต์เป็นแบตช์ ไม่ว่าจะยาว 3085 บรรทัดหรือยาวแค่ไหนก็ตาม ถือว่าไม่ปกติอย่างสิ้นเชิง
    • ออกนอกประเด็นไปมากหน่อย แต่เรื่องนี้ทำให้นึกถึง ไฟล์แบตช์ยาวกว่า 300 บรรทัด ที่เคยใช้กับ BBS ช่วงต้นยุค 90
      ใส่การตรวจ errorlevel ไว้เต็มไปหมดเพื่อจัดการการสลับ door, Fidonet และอื่น ๆ ถ้าจำเป็นต้องมีฟีเจอร์เพิ่มจริง ๆ ไฟล์แบตช์ก็ซับซ้อนได้แบบเหลือเชื่อเหมือนกัน
  • อนึ่ง ไม่ได้ระบุไลเซนส์ไว้

  • เท่าที่ผมรู้ “Windows Recovery Environment” คือ Windows เวอร์ชันขั้นต่ำที่ถูกตัดทอน โดยไม่มี user space ส่วนใหญ่และไม่มีบางส่วนของเคอร์เนล ซึ่งผู้คนขยายและปรับแต่งกันมาหลายรูปแบบ

    • การออกแบบโดยรวมได้รับแรงบันดาลใจจาก UI แบบข้อความเรียบง่ายที่ ClockworkMod Recovery ของ Android เคยใช้
      และไม่มี dependency ใด ๆ เลย
  • ถือว่าเป็นหนึ่งในเครื่องมือแบบเชลล์ที่น่าประทับใจพอสมควรจากที่เคยใช้มา แค่การที่มัน อยู่ใน 200KB ได้ ก็เป็นความสำเร็จและฉลาดมากแล้ว

  • เป็นการจับผิดเล็กน้อยมาก ๆ แต่พอเห็นรูปพหูพจน์แบบ FOO'S แล้วสะดุ้ง
    ถ้า VHDXS ทำให้สับสน ก็เลี่ยงตัวพิมพ์ใหญ่แล้วเขียนเป็น VHDXs ก็ได้
    https://www.hamilton.edu/academics/centers/writing/seven-sin...

  • ดูเจ๋งดี แต่สงสัยว่ามันทำอะไรที่ พาร์ทิชัน Windows Recovery Environment มาตรฐาน ทำไม่ได้
    ใช้ในกรณีที่ recovery environment มาตรฐานพังหรือเปล่า? สงสัยด้วยว่าเหตุการณ์ CrowdStrike ล่าสุดเป็นกรณีแบบนั้นไหม

    • ไม่ใช่ใน เหตุการณ์ CrowdStrike ล่าสุด
      บนแล็ปท็อปทำงานของผม recovery environment ยังทำงานได้ดี บูตเข้า safe mode ได้ และ safe mode ก็ไม่แครช
  • ใช้อันนี้ติดตั้ง ไดรเวอร์หรือเฟิร์มแวร์จอภาพ ได้ไหม? สงสัยว่าทำ USB ที่บูตได้ แล้วใส่ไฟล์ติดตั้งไว้ในนั้นเพื่ออัปเดตเฟิร์มแวร์จะเป็นไปได้หรือเปล่า
    https://www.lg.com/au/support/product-support/cs-32GS95UE-B....
    เคยคิดจะลองด้วย WINE แต่ก็กลัวนิดหน่อย น่าเสียดายที่เฟิร์มแวร์ใหม่ของจอผมติดตั้งได้เฉพาะผ่าน exe และตอนนี้ผมมีแค่เดสก์ท็อป Linux

    • ปกติก็จัดการกันประมาณนี้ ก่อนอื่นแกะ EXE อยู่หลายชั่วโมงไปจนถึงหลายวัน บางครั้งมันเป็นแค่ไฟล์รันแบบแตกไฟล์เอง ก็หา ไบนารีเฟิร์มแวร์ ต้นฉบับเจอได้ บางครั้งต้องกลับไปทบทวนพื้นฐาน R2/Ghidra อยู่หลายวันกว่าจะดึงเฟิร์มแวร์ออกมาได้
      จากนั้นถ้าหาเจอแล้ว ก็ค่อยหาวิธีอัปโหลดมัน พอคิดว่าเริ่มนึกวิธีออกแล้ว ต้องทำตอนดึกมาก ๆ ในสภาพง่วงจนเบลอเท่านั้น ถึงจะมั่นใจว่าทำได้โดยไม่ทำให้มันกลายเป็นก้อนอิฐ แต่ถ้าไม่ทำให้มันกลายเป็นก้อนอิฐตั้งแต่แรกจะสนุกตรงไหน? แค่หยิบคลิป Pomona SOIC ปลอมสักอันมา แล้ว dump ROM มั่ว ๆ จากชิปก็พอ
      สุดท้าย ถ้ายังตื่นพอที่จะไม่หลงเชื่อขั้นตอนก่อนหน้า ก็ทิ้งงานทั้งหมดที่ทำมา แล้วตัดสินใจใช้เวลาสร้าง USB Windows ที่บูตได้แทน ถ้ามันไม่สำเร็จด้วยเหตุผลใดเหตุผลหนึ่งในหลาย ๆ ข้อ ก็ไปยืมแล็ปท็อป Windows แต่ถึงตอนนั้นก็น่าจะเหนื่อยเกินไปแล้ว จึงสร้าง VM Windows ใน QEMU แล้วรีสตาร์ตคอมพิวเตอร์ซ้ำ ๆ เพื่อปรับ passthrough ที่จำเป็นสำหรับการเชื่อมต่ออุปกรณ์ พอรัน utility และเริ่ม EXE มันก็เริ่มทำงาน ดีใจเกินไปจนเผลอถอดทุกการเชื่อมต่อกลางคัน ไม่ว่าจะยังไง จอก็ดูเหมือนยังทำงานอยู่ แต่จะมั่นใจว่ามีอะไรบางอย่างแปลก ๆ แบบบอกไม่ถูก ผ่านไปไม่กี่ปีค่อยหยิบคลิป SOIC ออกมาอีกครั้ง นี่เป็นเรื่องที่รวมความผิดพลาดหลาย ๆ ครั้งของผมเข้าด้วยกัน
      ในทางปฏิบัติ ใช่ มีโอกาสสูงที่โปรเจกต์นี้จะทำงานแบบนั้นได้โดยไม่มีปัญหาใหญ่ แค่ควรเผื่อใจไว้ว่า installer อาจเป็น bloatware เต็มขั้นจนใช้ไม่ได้เลย หรือทำท่าเหมือนจะได้เกือบสุดแล้วค่อยมีอะไรเพี้ยนไป
    • utility ง่าย ๆ แบบนี้บางครั้งรันได้ใต้ FreeDOS/MS-DOS ที่บูตจาก USB แฟลชไดรฟ์หรือ CD
      ในกรณีอื่น ๆ ต้องใช้ Win32 และตอนนั้นก็มักจะใช้ของอย่าง Hiren’s Boot CD เวอร์ชันใหม่ ถ้าจำไม่ผิด เวอร์ชันใหม่ใช้ Windows 10 เป็นฐาน ส่วนรุ่นแรก ๆ ใช้ XP เป็นฐาน
    • มีอยู่หลายวิธี แต่ตัวนี้เป็น สคริปต์ Windows command shell จึงทำงานได้เฉพาะบน Windows
    • ถ้ารับซอฟต์แวร์ของบุคคลที่สามได้ ก็สามารถสร้าง USB บูต สำหรับอัปเดตเฟิร์มแวร์ได้
      https://www.hirensbootcd.org/
  • สุดยอดมาก เชลล์สคริปต์ 3 พันบรรทัด เนี่ยนะ ผมนับถือคนที่บำรุงรักษาของแบบนี้ได้จริง ๆ
    สำหรับผมมันดูเหมือนกองยุ่งเหยิงร้อน ๆ ที่เข้าใกล้ยาก

    • มันเข้าใกล้ยากขนาดนั้นจริงเหรอ? ผมก็ไม่ได้ชอบไฟล์ 3 พันบรรทัดเหมือนกัน แต่เวลาต้องจัดการ ก็ปฏิบัติกับมันเหมือนจัดการหลายไฟล์
      เปิดแท็บหรือหน้าต่างแบ่งหนึ่งอันต่อ “พื้นที่” ที่จะทำงาน ถ้าทำงานสามส่วน ก็เปิดหน้าต่างแบ่งสามช่องที่โฟกัสแต่ละส่วนแล้วสลับไปมา จริง ๆ แล้วแทบไม่ต่างจากจัดการไฟล์สามไฟล์เลย