Khởi động Ubuntu từ USB

Vật liệu cần:

  • SD card đã cài PiOS hay một OS chạy trên RPi nào đó
  • USB/HDD đã flash Ubuntu
  • RPi đã cập nhật EEPROM để có thể khởi động từ USB

Khởi động từ SD card đã cài PiOS, rồi sau đó gắn USB/HDD vào RPi

Chúng ta sẽ sao chép cơ chế boot USB từ PiOS sang Ubuntu OS.

Giả sử USB/HDD gắn vào RPi có tên thiết bị là /dev/sda

Kiểm tra các partition bằng lệnh

lsblk

Output tương tự như sau:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 119.2G  0 disk 
├─sda1        8:1    0   256M  0 part 
└─sda2        8:2    0   2.8G  0 part 
mmcblk0     179:0    0  59.5G  0 disk 
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0  59.2G  0 part /
  • mmcblk0 là thẻ nhớ SD card chứa PiOS
  • sda là USB/HDD chứa Ubuntu OS

Mount các partition sda1, sda2 để chuẩn bị chuyển boot sang

sudo mkdir /mnt/{boot,writable}
sudo mount /dev/sda1 /mnt/boot
sudo mount /dev/sda2 /mnt/writable

Kết quả của lệnh lsblk giờ tương tự như sau:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 119.2G  0 disk 
├─sda1        8:1    0   256M  0 part /mnt/boot
└─sda2        8:2    0   2.8G  0 part /mnt/writable
mmcblk0     179:0    0  59.5G  0 disk 
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0  59.2G  0 part /

Chạy các lệnh sau để chuyển cơ chế boot từ USB của PiOS sang Ubuntu OS

wget https://raw.githubusercontent.com/TheRemote/Ubuntu-Server-raspi4-unofficial/master/BootFix.sh
chmod +x BootFix.sh
sudo ./BootFix.sh

Cuối cùng là dọn dẹp

sudo umount /mnt/{boot,writable}
rmdir /mnt/{boot,writable}

Bây giờ có thể bỏ thẻ nhớ ra và khời động Ubuntu bằng USB/HDD

Chú thích

  • Ubuntu nhận dạng đĩa theo label (system-boot writable), tuy nhiên vẫn có thể dùng PARTUUID như cũ
# Ubuntu, kiểu label
LABEL=writable          /                 ext4    defaults    0    1
LABEL=system-boot       /boot/firmware    vfat    defaults    0    1

# Ubuntu, kiều PARTUUID
PARTUUID=3ba4435d-02    /                 ext4    defaults    0    1
PARTUUID=3ba4435d-01    /boot/firmware    vfat    defaults    0    1

Nếu dùng PARTUUID thì phải sửa đổi trong file /boot/firmware/cmdline.txt

net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=3ba4435d-02
 rootfstype=ext4 elevator=deadline rootwait fixrtc
  • system-boot được mount từ /boot/firmware không phải từ /boot như trong RaspiOS. Tuy ghi nhầm vẫn có thể boot được nhưng khi update OS sẽ gây lỗi.
  • Nội dung partition boot sẽ thay đổi trong quá trình boot, các file hệ thống sẽ được dời vào thư mục firmware
  • Raspberry Pi Imager có thể tạo khởi động từ USB, nhưng cơ chế đó dành cho PiOS chứ không dành cho Ubuntu

Comments Off on Khởi động Ubuntu từ USB

Filed under Software

Comments are closed.