โน๊ตบุ๊คเราบางทีอาจต้องการลง Windows 10 ติดไว้ด้วยเหตุผลต่างๆ ผมพึ่งเปลี่ยน Laptop จาก Arch Linux เพียวๆมาเป็น Dual Boot เมื่อไม่นานมานี้เลยจะเอามาลงให้ดูกันครับ
ให้ติดตั้งตามปกติ แค่ตอนแบ่ง partition ให้เหลือพื้นที่ว่างหรือสร้าง partition ไว้สำหรับติดตั้ง Arch Linux
อย่างผมจะสร้างไว้เลยแล้วแบ่งเป็น
p1 529M Windows recovery environment
p2 100M EFI System
p3 16M Microsoft reserved
p4 145.9G Microsoft basic data - ไดร์ C: Windows 10 ถ้า ssd คุณเล็ก อาจลดเหลือซัก 50G ก็พอ
พอกดสร้าง partition Windows อันที่ 1-4 มันจะสร้างให้เอง ให้สร้างเพิ่มขึ้นอีก 2 partitions
p5 500M - boot หลัก
p6 ขนาดที่เหลือ - จะลง Arch Linux ไว้ partition นี้
โดยผมจะติดตั้งเป็น LVM แล้วแบ่ง swap ให้อยู่ข้างในอีกที ถ้าหากคุณจะแยก swap ออกมาเป็นอีก partition ก็ให้สร้างเพิ่มขึ้นมาครับ
พอติดตั้ง Windows เสร็จ แนะนำให้ปิดการอัปเดต (ถ้านานๆใช้ซักที) เพื่อไม่ให้ไปยุ่งกับ boot partition ของเรา และตั้งค่าให้ Windows ใช้เวลาเป็น UTC ตามลิ้งก์นี้ https://necz.net/blog/windows-linux-time-sync/
เสร็จแล้วให้รีบูทไป USB (หรือ CD ถ้าคุณเป็นคนอนุรักษ์นิยม) สำหรับติดตั้ง Arch Linux แล้วทำการติดตั้ง Arch Linux โดยอย่าไปติดตั้ง GRUB แต่ให้ใช้ systemd-boot (bootctl) แทน
พอติดตั้งเสร็จจะเห็นว่าไม่มี Windows 10 ให้เลือกหน้าเมนู เพราะ systemd-boot จะเช็ค UEFI OS แค่ใน Partition ของมัน เราจึงต้องก็อบไฟล์บูทของ Windows 10 โดยให้บูทเข้า Arch Linux
sudo fdisk -l
เช็คว่า Partition ไหนเป็น UEFI ของ Windows โดยให้หาที่เขียนว่า "EFI System" เช่นของผมคือ /dev/nvme0n1p2 2. Mount partition นั้น ได้เลย
mkdir bootwin && sudo mount /dev/nvme0n1p2 ./bootwin
sudo cp -r ./bootwin/EFI/Microsoft /boot/efi/Microsoft
แค่นี้ก็เสร็จแล้วครับ
ปล. ถ้าหากจะติดตั้ง GRUB ให้ใช้ os-prober ซึ่ง GRUB จะง่ายกว่า แต่ผมใช้ systemd-boot เพราะถ้าใช้ Arch ยังไงมันก็ติดมาอยู่แล้ว
ถ้าใช้ PopOS มันจะลง systemd-boot มาให้เหมือนกัน แต่จะปิดหน้าเลือก OS ไว้ ให้เราไปเปิดโดย ใช้คำสั่ง
sudo nano /boot/efi/loader/loader.conf
แล้วเพิ่ม (ถ้าหากไม่มี)
timeout 10
ลงไปเป็นบรรทัดใหม่ล่างสุด สำหรับตัวเลข 10 คือวินาทีก่อนที่มันจะเลือกเมนูให้อัตโนมัติ