ทำ Laptop ให้ Dual Boots Arch Linux และ Windows 10 ด้วย systemd-boot

วันศุกร์ที่ 2 เมษายน 2564
หมวดหมู่LinuxWindows

โน๊ตบุ๊คเราบางทีอาจต้องการลง Windows 10 ติดไว้ด้วยเหตุผลต่างๆ ผมพึ่งเปลี่ยน Laptop จาก Arch Linux เพียวๆมาเป็น Dual Boot เมื่อไม่นานมานี้เลยจะเอามาลงให้ดูกันครับ

ติดตั้ง Windows 10

ให้ติดตั้งตามปกติ แค่ตอนแบ่ง 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/

ติดตั้ง Arch Linux

เสร็จแล้วให้รีบูทไป USB (หรือ CD ถ้าคุณเป็นคนอนุรักษ์นิยม) สำหรับติดตั้ง Arch Linux แล้วทำการติดตั้ง Arch Linux โดยอย่าไปติดตั้ง GRUB แต่ให้ใช้ systemd-boot (bootctl) แทน


ตรงนี้เว้นไว้ เผื่อมาเพิ่มขั้นตอนติดตั้งวันหลัง

พอติดตั้งเสร็จจะเห็นว่าไม่มี Windows 10 ให้เลือกหน้าเมนู เพราะ systemd-boot จะเช็ค UEFI OS แค่ใน Partition ของมัน เราจึงต้องก็อบไฟล์บูทของ Windows 10 โดยให้บูทเข้า Arch Linux

  1. พอมาให้เปิด Terminal มาพิมพ์ ใช้คำสั่ง
sudo fdisk -l

เช็คว่า Partition ไหนเป็น UEFI ของ Windows โดยให้หาที่เขียนว่า "EFI System" เช่นของผมคือ /dev/nvme0n1p2 2. Mount partition นั้น ได้เลย

mkdir bootwin && sudo mount /dev/nvme0n1p2 ./bootwin
  1. ให้คัดลอกแฟ้ม Boot ไปลง UEFI ของ Arch Linux ให้หาแฟ้มที่มีแฟ้มย่อยชื่อ Boot, Recovery อย่างของผมจะอยู่ใน bootwin/EFI/Microsoft
sudo cp -r ./bootwin/EFI/Microsoft /boot/efi/Microsoft

แค่นี้ก็เสร็จแล้วครับ

ปล. ถ้าหากจะติดตั้ง GRUB ให้ใช้ os-prober ซึ่ง GRUB จะง่ายกว่า แต่ผมใช้ systemd-boot เพราะถ้าใช้ Arch ยังไงมันก็ติดมาอยู่แล้ว

PopOS

ถ้าใช้ PopOS มันจะลง systemd-boot มาให้เหมือนกัน แต่จะปิดหน้าเลือก OS ไว้ ให้เราไปเปิดโดย ใช้คำสั่ง

sudo nano /boot/efi/loader/loader.conf

แล้วเพิ่ม (ถ้าหากไม่มี)

timeout 10

ลงไปเป็นบรรทัดใหม่ล่างสุด สำหรับตัวเลข 10 คือวินาทีก่อนที่มันจะเลือกเมนูให้อัตโนมัติ


Written by New. Featherless biped, born and live on Earth.


Facebook Thing