หลังจากเปิดให้บุคคลทั่วไปเข้าถึงอัพเดต Windows 8.1 Update ได้ไม่นาน ไมโครซอฟท์ได้เผยวิธีการติดตั้งวินโดวส์แบบใหม่ที่มาพร้อมกับอัพเดตนี้ในชื่อว่า Windows Image Boot (WIMBoot) ที่ช่วยให้ระบบใช้พื้นที่ในการติดตั้งน้อยลงกว่าปกติ
หมายเหตุ - บทความนี้เน้นเล่าเรื่องมากกว่าอธิบายขั้นตอนอย่างละเอียด มีศัพท์เทคนิคในระดับหนึ่ง และตัวระบบเองไม่ได้ออกแบบมาเพื่อผู้ใช้งานทั่วไป ผู้ใดจะทำตามโปรดพิจารณาความเสี่ยงด้วย
ในระยะหลังมานี้ ผู้ผลิตคอมพิวเตอร์มักจะใส่พาร์ทิชันสำหรับกู้คืนระบบมากับเครื่องคอมพิวเตอร์ด้วยเพื่อความสะดวกกับผู้ใช้ในการซ่อมแซมหรือลงวินโดวส์ใหม่ รวมไปถึงการ Refresh, Reset วินโดวส์ที่เพิ่มมาในสมัยของ Windows 8
แต่การทำแบบนี้ก็มีข้อเสียเช่นกัน เนื่องจากภายในไฟล์อิมเมจที่อยู่ในพาร์ทิชันสำหรับกู้คืนนั้น เป็นไฟล์ของตัวระบบปฏิบัติการวินโดวส์ที่ถูกบีบอัดและรวบรวมเอาไว้ด้วยกัน ทำให้ในเครื่องนั้นมีข้อมูลซ้ำซ้อนกันทั้งตัวไฟล์ของวินโดวส์ที่ใช้งานอยู่ และข้อมูลเดียวกันที่อยู่ในไฟล์อิมเมจ ทำให้เครื่องคอมพิวเตอร์ที่มีพื้นที่เก็บข้อมูลไม่มากนักพบปัญหาเหลือพื้นที่น้อยลงไปอีก ดังเช่นกรณีของ Surface RT
ภาพการจัดพาร์ทิชันแบบปกติ
ไมโครซอฟท์ได้เสนอ WIMBoot มาเพื่อแก้ปัญหาการซ้ำซ้อนดังกล่าว โดยจัดการกับความซ้ำซ้อนของไฟล์ด้วยการชี้ตำแหน่งของข้อมูลระบบปฏิบัติการที่ใช้งานไปยังไฟล์อิมเมจโดยตรง ทำให้ในเครื่องมีข้อมูลเหลือเพียงส่วนเดียวในไฟล์อิมเมจ
ภาพการจัดพาร์ทิชันของระบบที่ใช้ WIMBoot
การจะทำเช่นนี้ได้ นอกจากต้องปรับแต่งตัวระบบปฏิบัติการแล้ว ไฟล์อิมเมจก็ต้องเปลี่ยนแปลงไปจากเดิมเช่นกัน โดยไฟล์อิมเมจสำหรับ WIMBoot นี้จะถูกเปลี่ยนแปลงวิธีการบีบอัดไปจากเดิมเพื่อให้สามารถเข้าถึงไฟล์ต่างๆ ภายในได้อย่างรวดเร็ว ทำให้ไฟล์อิมเมจนั้นมีขนาดใหญ่ขึ้นกว่าแต่ก่อน แต่ก็แลกกับการที่ไม่ต้องมีข้อมูลซ้ำซ้อนในเครื่อง และการรวบรวมไฟล์ต่างๆ มารวมไว้เป็นไฟล์เดียวยังช่วยประหยัดพื้นที่ส่วนเกินได้อีกมาก (การจัดเก็บไฟล์จำนวนมากจะทำให้มีพื้นที่เสียเปล่าค่อนข้างมาก โดยเฉพาะในกรณีที่ขนาดของไฟล์ไม่พอดีกับคลัสเตอร์ เช่น จัดเก็บไฟล์ขนาด 34 KB บนดิสก์ที่มีคลัสเตอร์ขนาด 32 KB จะทำให้ต้องใช้พื้นที่เพื่อจัดเก็บไฟล์นี้บนดิสก์ 32 * 2 = 64 KB)
เมื่อไม่กี่วันมานี้ผมได้เปลี่ยนฮาร์ดดิสก์จาก Hybrid HDD ขนาด 120 GB มาเป็น SSD ขนาด 80 GB ขณะกำลังคิดว่าผมจะย้ายข้อมูลยังไงดี ก็นึกกลับไปถึงวิธี WIMBoot ที่เคยอ่านเจอในข่าวได้ ในเมื่อเปลี่ยนฮาร์ดดิสก์ที่ลดขนาดเล็กลงแล้ว รวมถึงอยากรู้อยากเห็นด้วยว่าระบบที่ว่านี้ช่วยลดพื้นที่การติดตั้งวินโดวส์ไปได้สักขนาดไหน จึงตัดสินใจว่าได้เวลาลองของใหม่แล้ว
หลังจากตัดสินใจที่จะทำ เริ่มด้วยการเปิดกลับไปอ่านข่าว กดดูต้นทางเพื่อหารายละเอียดต่างๆ ของ WIMBoot จนกระทั่งไปเจอข้อจำกัดของระบบ
Limitations
- WIMBoot is available for client editions of Windows 8.1 with Windows 8.1 Update only (not server versions). All architectures are supported, including amd64, x86, and ARM. Some enterprise deployment tools do not support WIMBoot.
- WIMBoot is available only for UEFI-based PCs running in UEFI mode (legacy BIOS-compatibility mode isn't supported).
- WIMBoot is supported for solid-state drives and eMMC (Windows HCK compliant) drives. WIMBoot isn't supported on traditional drives that contain rotational components, or on hybrid drives that contain both solid-state and rotational drive components. WIMBoot works by taking advantage of the capability of solid-state drives to access different areas of the hard drive quickly.
It's OK to have a secondary drive attached to the PC, and the secondary drive can contain rotational components. But the WIMBoot image and pointer files must all be located on the primary solid-state or eMMC drive.- Some backup, antivirus, and encryption tools aren’t compatible with WIMBoot images.
เงื่อนไขที่ว่าต้องไม่ใช่ฮาร์ดดิสก์ที่มีชิ้นส่วนหมุนนี้ มีคนบอกว่าเนื่องจากระบบ WIMBoot จะทำให้หัวอ่านต้องเด้งข้ามพาร์ทิชันอยู่ตลอดเวลา และพาร์ทิชันที่เก็บไฟล์อิมเมจนั้นก็อยู่วงในสุดของฮาร์ดดิสก์ขณะที่ไดรฟ์ C: มักจะอยู่วงเกือบนอกสุด การที่ต้องย้ายหัวอ่านข้ามไปมาระหว่างสองพาร์ทิชันนี้จึงทำให้มีผลกระทบทางด้านประสิทธิภาพค่อนข้างมาก ขณะที่หน่วยความจำแบบแฟลชและ SSD นั้นสามารถเข้าถึงข้อมูลในตำแหน่งใดๆ ได้ที่เวลาเท่ากันไม่ว่าตำแหน่งจะอยู่ห่างกันสักแค่ไหน ประกอบกับฮาร์ดดิสก์แบบมีจานหมุนนั้นมักมีพื้นที่ค่อนข้างมากจึงไม่น่าจำเป็นต้องใช้ระบบนี้ ส่วนจะฝืนใช้ได้หรือไม่นั้น คงต้องไปลองดูนะครับ ซึ่งข้อจำกัดนี้ไม่มีปัญหาเพราะผมก็ได้เคลียร์ไปหมาดๆ แบบไม่ได้ตั้งใจ แต่ก็มีปัญหาใหญ่กว่าขวางหน้าเลยทีเดียว
ใช่ครับ ในบรรดาเงื่อนไขที่กำหนดมา มีข้อนึงระบุว่าไม่รองรับการใช้งานกับ BIOS (ข้อที่ทำตัวหนา) เมื่อค้นต่อไปเรื่อยๆ พบว่าการทำ WIMBoot นั้น ไมโครซอฟท์กำหนดว่าต้องทำบนดิสก์ที่จัดพาร์ทิชันแบบ GPT เท่านั้น ซึ่งการจัดพาร์ทิชันแบบนี้บนเครื่องที่ใช้งานระบบ BIOS จะทำให้ไม่สามารถบูตระบบบนดิสก์นั้นๆ ได้ ทำให้ต้องใช้เครื่องที่รองรับ UEFI มาเพื่อบูตดิสก์ที่จัดพาร์ทิชันแบบ GPT
แต่เนื่องจาก UEFI เพิ่งถูกใช้งานจริงจังในช่วงไม่กี่ปีที่ผ่านมา เครื่องอายุกว่าหกปีของผมจึงรองรับ BIOS เพียงอย่างเดียวเท่านั้น
จะให้ตัดใจเลยก็ง่ายเกินไปครับ ไปค้นข้อมูลต่อ พบว่ามีคนที่สามารถทำ WIMBoot บนดิสก์ที่จัดพาร์ทิชันแบบ MBR เพื่อใช้งานกับ BIOS ได้อยู่เช่นกัน แถมยังใช้วิธีแสนง่ายไม่กี่ขั้นตอนเหมาะกับผู้ที่ต้องการความสะดวก (อ่านเพิ่มเติมได้ที่ Windows 8.1 update 1 and Wimboot made easy) ปัญหาอยู่ที่วิธีที่เขาแนะนำนั้นทำให้ขนาดไฟล์อิมเมจใหญ่เกือบ 8 GB เลยทีเดียว (คุณ varavut ได้ทำตามวิธีนี้และได้ไฟล์อิมเมจขนาดกว่า 9 GB) เมื่อติดตั้งเสร็จเรียบร้อยแล้วยังต้องใช้พื้นที่ประมาณ 10 GB ซึ่งไม่ต่างจากการติดตั้งแบบปกติเท่าไหร่และยังห่างไกลจากที่ไมโครซอฟท์เคยคุยไว้ ผมจึงไม่สนใจวิธีนี้
แม้วิธีการจะไม่น่าสนใจ แต่อย่างน้อยที่สุดก็เป็นสิ่งยืนยันว่าเราสามารถทำ WIMBoot กับ BIOS ได้ เมื่อลองเปรียบวิธีการนี้กับวิธีของไมโครซอฟท์เพื่อหาความแตกต่าง ก็พบว่าต่างกันที่วิธีนี้ไม่ได้ปรับแต่งไฟล์อิมเมจให้เต็มที่จึงค่อนข้างใหญ่ กระบวนการสร้างไฟล์อิมเมจนั้นใช้คำสั่งเหมือนกับวิธีของไมโครซอฟท์ จะไปต่างกันอีกนิดตรงวิธีการแบ่งพาร์ทิชันและการ deploy ที่ทำให้ใช้งานกับ BIOS ได้
ผมตัดสินใจไปเริ่มต้นตามขั้นตอนที่ไมโครซอฟท์แนะนำไว้ที่นี่ก่อน ซึ่งอธิบายขั้นตอนไว้ค่อนข้างละเอียด โดยมีการปรับแต่งไฟล์อิมเมจโดยตรงหลายครั้ง มีการ deploy ไฟล์อิมเมจลงไปก่อนและดึงกลับมาเป็นไฟล์อิมเมจอีกหลายครั้ง ขั้นตอนส่วนมากเป็นเพื่อการกำจัดข้อมูลที่ไม่จำเป็นออกจากไฟล์อิมเมจเพื่อให้เหลือขนาดเล็กที่สุดและปรับสภาพของวินโดวส์ให้พร้อมใช้งาน แต่ก็แน่นอนครับ เอา GPT ไปบูตกับ BIOS ผลก็ต้องเป็นไม่สำเร็จครับ
ในเมื่อ BIOS บูต GPT ไม่ได้ ก็พยายามอัดลง MBR มันเสียเลย ผมดัดแปลงสคริปต์ deployment ของไมโครซอฟท์ให้รองรับ WIMBoot และรองรับการแยกไฟล์อิมเมจที่แยกไฟล์อิมเมจของระบบกู้คืน (winre.wim) กับไฟล์อิมเมจตัวติดตั้งวินโดวส์ (install.wim) แม้ผลที่ได้คือบูตไม่สำเร็จ แต่รอบนี้ก็ดีขึ้นบ้างตรงมันพยายามจะบูตแล้ว เพียงแต่ไม่สามารถบูตจนเสร็จได้ครับ โดยแจ้งผลประมาณว่าวินโดวส์นี้ไม่รองรับการติดตั้งด้วยวิธีนี้
ไปไล่ขั้นตอนของไมโครซอฟท์อีกครั้งเพื่อหาสาเหตุ พบว่ามีขั้นตอนหนึ่งที่ทำเพื่อปรับแต่งระบบปฏิบัติการเพื่อใช้กับ WIMBoot โดยเฉพาะ ตั้งสมมติฐานว่าปัญหาเกิดจากขั้นตอนนี้ ผมจึงย้อนกลับไปดึงไฟล์อิมเมจที่ขั้นตอนก่อนหน้ามา deploy ลงเครื่องใหม่อีกครั้ง แต่แทนที่จะดึงกลับเป็นไฟล์อิมเมจธรรมดาหลังปรับแต่งตามขั้นตอนของไมโครซอฟท์ ผมเปลี่ยนไปใช้คำสั่งดึงกลับเป็นไฟล์อิมเมจแบบใส่สวิตช์ /WIMBoot ลงไปด้วย แล้วนำไฟล์อิมเมจนี้ไป deploy แบบ WIMBoot อีกครั้ง คราวนี้เครื่องสามารถบูตขึ้นมาใช้งานได้ เป็นอันว่าทำไฟล์อิมเมจเพื่อใช้งานกับ BIOS ได้เรียบร้อยแล้ว
หากอิงตามขั้นตอนจากไมโครซอฟท์ ให้ทำขั้น Separate the Windows RE image from the main Windows image ให้เสร็จแล้วสร้างไฟล์อิมเมจสำหรับ WIMBoot ได้เลย โดยไม่ต้องทำขั้น Optimize the Windows image for WIMBoot
ตัว SSD ขนาด 80 GB ที่ผมได้มา มีที่ให้ใช้งานได้จริง 74 GB เพื่อให้ใช้พื้นที่ได้อย่างเต็มที่เราจะต้องจัดการแบ่งส่วนต่างๆ ให้เหมาะสมกับขนาดของไฟล์อิมเมจ ด้วยการปรับแต่งตามที่ไมโครซอฟท์แนะนำและที่ดัดแปลงเองอีกบางส่วน ผมสามารถลดขนาดไฟล์อิมเมจลงมาเหลือไม่ถึง 3.3 GB เท่านั้น โดยยังไม่รวมไฟล์อิมเมจของระบบกู้คืนที่ตัดออกมาแยกไว้อีก ~230 MB
เพื่อความสะดวกในขั้นตอนการติดตั้ง ผมเลือกแบ่งพาร์ทิชันออกเป็นสามส่วนโดยปรับแต่งสคริปต์จากไมโครซอฟท์ ส่วนแรกมีขนาด 350 MB ตามที่สคริปท์แนะนำมา โดยใช้เป็นพื้นที่สำหรับระบบและไฟล์อิมเมจของระบบกู้คืน (winre.wim) ส่วนที่สองเป็นพื้นที่สำหรับติดตั้งระบบปฏิบัติการและใช้งานอื่นๆ ในฐานะไดรฟ์ C: ส่วนสุดท้ายเป็นพื้นที่เก็บไฟล์อิมเมจของระบบ (install.wim) เท่าที่ผมหาข้อมูลได้คือส่วนสุดท้ายนี้ต้องมีพื้นที่เหลือหลังจากวางไฟล์อิมเมจไปแล้ว 50 MB หลังจากหาพื้นที่ที่เหมาะสมได้แล้วผมปัดเศษขึ้นอีกเล็กน้อยและเตรียมพื้นที่ไว้ด้วยขนาด 3.3 GB ทำให้ผมเหลือพื้นที่ให้ส่วนที่สองอยู่ 74 GB - (3.3 GB + 350 MB) ≈ 70 GB ซึ่งพื้นที่นี้ผมจะไปแบ่งอีกครั้งหลังเครื่องพร้อมใช้งานแล้ว (โดยใช้ Disk Management หั่นไดรฟ์ C: ออกมา) เมื่อเตรียมดิสก์เรียบร้อยแล้ว ผมก็ใช้สคริปต์เดียวกับที่ใช้ตอนเตรียมไฟล์อิมเมจในครั้งที่สองมา deploy ไฟล์อิมเมจลงไป
หลังจากที่ deploy เรียบร้อยแล้ว เวลาที่เปิดเครื่องครั้งแรกเราจะพบกับหน้า OOBE (Windows Out of Box Experience) เช่นเดียวกับการติดตั้งวินโดวส์ปกติ จากการทดสอบเข้าสู่ระบบด้วย local account พบว่าไดรฟ์ C: ถูกใช้ไปเพียง 5.7 GB เท่านั้น โดยเป็นส่วนของไฟล์ hiberfil.sys, pagefile.sys และ swapfile.sys ไปเกือบ 5 GB (ทั้งสามไฟล์นี้ขึ้นกับสเปคและการปรับแต่งของแต่ละเครื่องด้วย) เมื่อหักลบแล้วจึงได้ผลว่าใช้พื้นที่เพื่อการติดตั้งวินโดวส์จนพร้อมใช้งานไปไม่ถึง 5 GB เท่านั้น (พาร์ทิชันของระบบ 350 MB + พาร์ทิชันวางไฟล์อิมเมจ 3.3 GB + (พื้นที่ที่ถูกใช้ไปในไดรฟ์ C: 5.7 GB - พื้นที่ที่ถูกใช้โดยสามไฟล์ 5 GB)) ใกล้เคียงกับพื้นที่ที่แจ้งในข่าวก่อนหน้านี้
ส่วนภาพที่ผมแปะไว้นั่นมาจากคนละรอบกันครับ โดยในภาพนั้นแสดงผลที่ได้จากการเข้าสู่ระบบด้วย Microsoft account และดึงข้อมูลสำรองจากคลาวด์ลงมาแล้วทำให้เหลือพื้นที่ว่างน้อยกว่า
ในส่วนของประสิทธิภาพ ผมวัดโดยการจับเวลาจากกดปุ่มเปิดเครื่องจนถึงหน้าเข้าสู่ระบบ โดยเทียบกันระหว่างการติดตั้งแบบปกติ (ที่ผมต้องทำในช่วงปรับแต่งไฟล์อิมเมจ) และการติดตั้งแบบ WIMBoot ทั้งสองแบบใช้เวลาประมาณ ๑๑ วินาทีเท่าๆ กันครับ ผมไม่เคยใช้เครื่องที่เป็น SSD มาก่อนเลยจึงไม่รู้ว่ามีอะไรต่างกันอีกหรือเปล่า
ปัจจัยที่ทำให้ผมเสียเวลาไปมากมาจากสองสาเหตุครับ อย่างแรกคือเครื่องผมไม่รองรับ UEFI ตามที่ได้บอกไปก่อนหน้านี้แล้ว ทำให้ต้องมาลองผิดลองถูกในการสร้างไฟล์อิมเมจและการแบ่งพื้นที่เองอีกหลายครั้ง รวมถึงดัดแปลงสคริปท์ต่างๆ ที่ไมโครซอฟท์ได้เตรียมไว้ให้ด้วย หากเครื่องรองรับ UEFI แล้วก็สามารถทำตามขั้นตอนที่ไมโครซอฟท์เตรียมไว้ให้ต่อไปได้เรื่อยๆ เลย
อีกอย่างนึงคือผมไม่มีแผ่น Windows 8.1 Update ครับ ผมต้องดึงไฟล์อิมเมจออกมาจากแผ่น Windows 8.1 แล้วค่อยๆ ใส่อัพเดต Windows 8.1 Update ลงไปในไฟล์อิมเมจอีกทีนึง ซึ่งขั้นตอนนี้เองก็ทำเอาเสียเวลาไปหลายชั่วโมง เพราะต้องทำการอัพเดตนี้กับไฟล์อิมเมจถึงสามชุด (ไฟล์อิมเมจของวินโดวส์ install.wim, ไฟล์อิมเมจของระบบกู้คืน winre.wim และไฟล์อิมเมจของ Windows PE 5.0 ที่ต้องอัพเดตเป็น Windows PE 5.1)
แม้ว่าในกรณีที่เครื่องรองรับทุกอย่างตามที่ไมโครซอฟท์กำหนดไว้ และเราแค่ทำตามขั้นตอนต่างๆ ที่ไมโครซอฟท์ได้เตรียมไว้ให้ก็ตาม แต่คำสั่งที่ใช้บางส่วนก็ยังต้องอาศัยความเข้าใจด้วย ผมคิดเห็นว่าระดับความยากสำหรับผู้ใช้ทั่วไปนี้จัดอยู่ในระดับไม่ควรทำด้วยตัวเองครับ แต่หากต้องการทำเพื่อความเข้าใจและมีอุปกรณ์อื่นสำรองไว้ใช้งานก็สามารถทำได้
คุ้มครับ สำหรับเครื่องที่ใช้หน่วยความจำแบบแฟลชและ SSD ที่พื้นที่ว่างสำคัญยิ่งนั้น การลดพื้นที่ติดตั้งวินโดวส์จากมากกว่า 10 GB ลงมาเหลือไม่ถึง 5 GB ได้โดยยังไม่เห็นความต่างของประสิทธิภาพเลย แถมยังได้ระบบสำหรับกู้คืนเครื่องพร้อมใช้อีก (กรณีเครื่องที่ติดตั้งแบบปกติและมีระบบสำหรับกู้คืนเครื่อง จะต้องใช้พื้นที่ถึง 15~20 GB) ด้วยระบบนี้ทำให้การใช้งานวินโดวส์บนอุปกรณ์ขนาดเล็กที่มีความจุเพียง 16 GB สามารถเกิดขึ้นได้จริงอีกด้วย ส่วนเรื่องที่ว่าพื้นที่ขนาดนั้นจะเอาไปใช้งานจริงได้ขนาดไหนคงเป็นอีกเรื่องนึง