20 ก.ค. 2021 เวลา 04:22 • ไอที & แก็ดเจ็ต
ตอนที่แล้วเสนอเรื่องการทำ Live multiboot usb เพื่อช่วยให้เราสามารถทดลองใช้งาน Linux ได้หลายค่าย หลาย version ไปแล้ว
ตอนนี้ผู้เขียนขอสมมุติว่าท่านผู้อ่านได้ทดลองใช้ Linux จนถูกใจกับค่าย Ubuntu และเลือก Linuxmint Xfce edition ซึ่งเหมาะกับคอมฯ low spec ของท่านแล้ว ก้อตัดสินใจติดตั้งเต็มรูปแบบ(Full install) การติดตั้งก้อสามารถติดตั้งลงใน hard disk ของคอมฯ หรือจะติดตั้งลงใน flash drive ก้อได้ กรณีติดตั้งลงใน flash drive จะต้องมีพื้นที่ที่มากเพียงพอ ตามที่ระบุใน released
การติดตั้งลงใน Flash drive มีข้อดีคือ มีขนาดเล็กสามารถพกพาติดตัวไปใช้ทำงานกับเครื่องคอมฯที่อื่นได้สะดวก ไม่ต้องแบกคอมฯไปด้วย แต่การติดตั้งแบบ Full install ต้องใช้ flash drive ที่มีความจุมาก ขนาด 16 gb น่าจะเอาไม่อยู่ อย่างน้อยก้อต้อง 32 gb
การติดตั้งแบบ Live usb จะใช้พื้นที่ใน usb น้อยกว่าและใช้ทำงานได้เช่นกัน แต่ข้อเสียของ Live usb คือมันไม่สามารถบันทึกการเปลี่ยนแปลงค่า desk top หรือเพิ่มเติม app นอกเหนือจากที่ให้มาได้ มันจะถูก set กลับเป็นค่า default เสมอเมื่อทำการ boot ระบบใช้งานใหม่ และข้อเสียอีกประการหนึ่งคือใช้เวลาในการ boot ระบบนานกว่า
ในประเด็นการใช้เวลา boot ระบบนานกว่า ในมุมมองของผู้เขียน ยอมรับได้ แต่การที่ไม่สามารถบันทึกเปลี่ยนแปลง เพิ่มเติม app ได้ น่ากังวลมากกว่า... แต่อย่าเพิ่งกังวลมากไป เหล่ากูรู เค้าหาวิธีให้เราได้ วิธีนี้เรียกกันว่า Live usb with persistent partition หรือ persistent live usb
Persistent live usb จะใช้วิธีแบ่ง partitions ใน flash drive เพิ่มอีก 1 Partition และกำหนด label ชื่อว่า casper-rw (Ubuntu/Linuxmint base) Partition นี้จะเป็นที่บันทึกค่าต่างๆ รวมทั้ง app และข้อมูลผู้ใช้ ที่เปลี่ยนแปลง นอกจากนั้นจะต้องไปใส่ kernel parameter "persistent" เพิ่มใน grub.cfg file ซึ่งผู้เขียนจะขอคัดลอกของเดิมมาปรับปรุงและแสดงทั้งหมดแบบสมบูรณ์ ดังนี้
****ผู้เขียนจะแบ่ง flash drive 16 GB ออกเป็น 3 partitions
****partition ที่ 1 /dev/sdb1 ขนาด 550 MB
****partition ที่ 2 /dev/sdb2 ขนาด 6 GB
****partition ที่ 3 /dev/sdb3 พื้นที่ส่วนที่เหลือทั้งหมด 9.45 GB และกำหนด Label ชื่อ casper-rw
****Linux version ที่ต้องการติดตั้ง Linux Mint 20.2 "Uma" - Xfce (64-bit)
mint@mint:~$ sudo parted -s /dev/sdb mklabel msdos
mint@mint:~$ sudo parted -s /dev/sdb mkpart primary 1MiB 551MiB
mint@mint:~$ sudo parted -s /dev/sdb set 1 esp on
mint@mint:~$ sudo parted -s /dev/sdb set 1 boot on
mint@mint:~$ sudo mkfs.fat -F32 /dev/sdb1
mkfs.fat 4.1 (2017-01-24)
mint@mint:~$ sudo parted -s /dev/sdb mkpart primary 551MiB 6551MiB
mint@mint:~$ sudo mkfs.ext4 /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
/dev/sdb2 contains a ext4 file system
last mounted on /media/data on Sat Jul 10 07:25:13 2021
Proceed anyway? (y,N) y
Creating filesystem with 1024000 4k blocks and 256000 inodes
Filesystem UUID: 5523dedc-8827-4ba8-8730-dbd14a695a31
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
mint@mint:~$ sudo parted -s /dev/sdb mkpart primary 6551MiB 100%
mint@mint:~$ sudo mkfs.ext4 -L casper-rw /dev/sdb3
mke2fs 1.45.5 (07-Jan-2020)
/dev/sdb2 contains a ext4 file system
last mounted on /media/data on Sat Jul 10 07:25:13 2021
Proceed anyway? (y,N) y
..
..
..
mint@mint:~$ sudo mkdir /media/{efi,data}
mint@mint:~$ sudo mount /dev/sdb1 /media/efi
mint@mint:~$ sudo mount /dev/sdb2 /media/data
mint@mint:~$ sudo grub-install --target=i386-pc --recheck --boot-directory="/media/data/boot" /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
mint@mint:~$ sudo apt install grub-efi
mint@mint:~$ sudo grub-install --target=x86_64-efi --recheck --removable --efi-directory="/media/efi" --boot-directory="/media/data/boot"
Installing for x86_64-efi platform.
Installation finished. No error reported.
mint@mint:~$ sudo cp -a /iso*/boot/grub/grub.cfg /media/data/boot/grub
mint@mint:~$ sudo mkdir /media/data/boot/iso
mint@mint:~$ cd /media/data/boot/iso
mint@mint:~$ sudo vi /media/data/boot/grub/grub.cfg
****แก้ไข content of /media/data/boot/grub/grub.cfg ให้เป็นไปตามนี้
menuentry "Run Linux Mint 20.2 "Uma" - Xfce (64-bit)" {
set isofile="/boot/iso/linuxmint-20.2-xfce-64bit.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject persistent
initrd (loop)/casper/initrd.lz
}
****ออกและsave file
ขอให้ทุกท่านประสบความสำเร็จ.....
โฆษณา