WubiUEFI là một trình cài đặt Ubuntu trên Windows. Bài viết này sẽ hướng dẫn làm thế nào để cài đặt Ubuntu trên USB với WubiUEFI. Khi cài đặt trên USB, chúng ta có thể khởi động và sử dụng Ubuntu trên các máy khác nhau.

Nhắc đến Wubi tự nhiên mình cảm thấy mình đã già, Ubuntu 12.04 là phiên bản đầu tiên mà mình cài đặt bằng Wubi. Wubi hiện đã không còn được phát triển, WubiUEFI hiện đang được phát triển và hỗ trợ các phiên bản Ubuntu mới nhất.

Theo mình nhớ thì Wubi chỉ hỗ trợ chế độ Legacy BIOS, nó thêm một mục nhập cho khởi động tệp wubildr.mbr từ Windows Boot Manager. WubiUEFI hỗ trợ chế độ UEFI, nó thêm mục nhập vào EFI NVRAM cho khởi động một tệp EFI từ thư mục /EFI/ubuntu/wubildr. Trong bài viết này mình sẽ hướng dẫn cách khởi động tệp root.disk mà WubiUEFI đã tạo từ USB để sử dụng cho mục đích di động.

Yêu cầu

AIO Boot NewGen mặc định được cài đặt sẵn Grub2, nếu bạn đang sử dụng phân vùng exFAT và không được hỗ trợ bởi WubiUEFI, hãy định dạng nó sang NTFS hoặc tạo thêm phân vùng mới.

  • USB có cài đặt Grub2. Phạm vi bài viết này không hướng dẫn cách cài đặt Grub2.
  • USB có một phân vùng NTFS, mình không thử với exFAT.
  • Nên dành ra 10 phút để xem video và đọc thật kỹ các bước trong bài viết này.

Tạo tệp cài đặt Ubuntu

Đầu tiên chúng ta phải tải WubiUEFI về, phiên bản mới nhất được hỗ trợ là Ubuntu 22.04.1. Phiên bản Ubuntu 22.04.2 vừa được phát hành, liên kết bản 22.04.1 hiện đã bị đứt nên công cụ này không thể tải về các tệp cho bản hiện tại mà nó hỗ trợ. Mình nghĩ công cụ sẽ sớm được cập nhật để hỗ trợ phiên bản Ubuntu mới nhất. Trong bài viết này mình sử dụng Wubi for Ubuntu 20.04.4.

WubiUEFI
Sau khi tải về, chạy tệp EXE.

Mặc định thì công cụ sẽ tự động phát hiện các ISO trong cùng thư mục, nếu không phát hiện được gì nó sẽ tải tệp từ Internet. Nó cũng hỗ trợ chỉ định một tệp ISO, xem tại mục FAQ.

  • Installation Drive: công cụ sẽ tạo các tệp tin vào thư mục gốc của ổ đĩa này. Nếu sử dụng cho mục đích di động, hãy chọn ổ đĩa USB.
  • Desktop Environment: mình chọn Ubuntu, hiện tại Lubuntu không hiện cửa sổ cài đặt và thanh tiến trình.
  • Username: nhập tên người dùng được viết thường.

Khi đã hoàn tất các tùy chọn, bấm Install. Sẽ mất nhiều thời gian hơn nếu tải các tệp từ Internet.

Wubi for Ubuntu

Ở cửa sổ này chỉ cần bấm nút Finish, không cần phải khởi động lại máy.

Ubuntu Setup Wizard

Bây giờ hãy nhìn vào ổ đĩa mà bạn đã chọn trong bước trên. Có hai tệp tin và một thư mục được tạo ra ở thư mục gốc.

  • ubuntu: thư mục này chứa tệp ISO, preseed.cfg và các tệp cấu hình khác.
  • \ubuntu\disks\root.disk: đây là một hình ảnh phân vùng có định dạng ext4. Ubuntu sẽ được cài đặt trong tệp này.
  • wubildr: tệp này cực kỳ quan trọng, lệnh grub-install sẽ không cài đặt các tệp vào phân vùng EFI và không thêm mục nhập vào EFI NVRAM nếu gói lupin-support được cài đặt. Nhưng với điều kiện tệp wubildr phải tồn tại trên ổ đĩa.
  • wubildr.mbr: mình đoán là tệp này được sử dụng cho khởi động từ Windows Boot Manager ở chế độ Legacy BIOS.
  • Ngoài ra còn có thư mục /EFI/ubuntu/wubildr được tạo ra trên phân vùng ESP.

Bây giờ tiến hành xóa mục nhập mà công cụ đã thêm vào EFI NVRAM và các tệp tin trên phân vùng ESP. Nhưng tệp wubildr và thư mục ubuntu phải được giữ lại.

Chạy wubi.exe một lần nữa, bạn sẽ nhìn thấy nút Uninstall nhưng đừng làm gì cả. Chúng ta cần phải giữ lại các tệp cần thiết bằng cách đổi tên chúng hoặc di chuyển chúng sang một nơi khác trước.

Mình sẽ chọn cách đổi tên:

ubuntu -> _ubuntu
wubildr -> _wubildr
wubildr.mbr -> _wubildr.mbr

Bây giờ bấm nút Uninstall để gỡ cài đặt mục nhập và các tệp trên phân vùng ESP.

Gỡ cài đặt Wubi

Tiếp đến là đổi tên các tệp trở lại:

_ubuntu -> ubuntu
_wubildr -> wubildr
_wubildr.mbr -> wubildr.mbr

Thêm mục nhập Grub2

WubiUEFI sử dụng Grub2, nếu như USB của bạn đã cài đặt Grub2 thì chỉ cần thêm một mục nhập bằng cách thêm đoạn mã dưới đây vào tệp cấu hình:

### BEGIN WubiUEFI
menuentry 'Ubuntu WubiUEFI' {
	search -f -s wubidev /ubuntu/disks/root.disk
	if [ -n "$wubidev" ]; then
		loopback rootdisk ($wubidev)/ubuntu/disks/root.disk
		if test -f (rootdisk)/boot/grub/grub.cfg; then
			set root=rootdisk
			set prefix=/boot/grub
			configfile /boot/grub/grub.cfg
		else
			loopback -d rootdisk
			if test -f ($wubidev)/ubuntu/install/boot/grub/grub.cfg; then
				set root=$wubidev
				configfile /ubuntu/install/boot/grub/grub.cfg
			fi
		fi
	fi
}
### END WubiUEFI

Đối với những ai đang sử dụng AIO Boot NewGen, tạo tệp tin /AIO/Menu/custom.cfg sau đó thêm đoạn mã trên vào.

Giờ chỉ cần khởi động vào Grub2, chọn mục nhập đã thêm để bắt đầu quá trình cài đặt. Mọi thứ sẽ diễn ra tự động cho đến khi khởi động lại máy.

Cài đặt Ubuntu trên USB bằng WubiUEFI
Nếu như bạn cần phải thao tác bất kỳ điều gì để quá trình cài đặt được tiếp tục hoặc diễn ra, quá trình cài đặt này bị lỗi.

Máy tính sẽ tự động khởi động lại sau khi việc cài đặt được hoàn tất. Bạn có thể sử dụng môi trường Ubuntu này như một môi trường Ubuntu được cài đặt bình thường trên một phân vùng thật, lưu ý không nên gỡ gói lupin-support.

Một số lưu ý nếu muốn khởi động và sử dụng Ubuntu trên nhiều máy khác nhau:

  • Không cài đặt cũng như cấu hình Trình điều khiển đặc thù cho bất kỳ máy nào cả.
  • Đừng gắn bất kỳ một phân vùng hoặc đường dẫn nào trên một đĩa khác vào /etc/fstab.
  • Đối với các script tự động, không sử dụng dạng /dev/sda, /dev/sdb, nên sử dụng /dev/disk/by-uuid hoặc /dev/disk/by-id để thay thế.

Di chuyển thư mục ubuntu sang ổ đĩa khác

UUID của phân vùng chứa tệp root.disk được chỉ định trong tệp /boot/grub/grub.cfg. Chúng ta cần khởi động vào Ubuntu trước từ mục nhập này:

### BEGIN WubiUEFI
menuentry 'Ubuntu WubiUEFI (run sudo update-grub)' {

	insmod gzio
	insmod ntfs
	
	search -s -f -n /ubuntu/disks/root.disk
	probe --set=diskuuid -u $root
	
	loopback loop0 /ubuntu/disks/root.disk
	set root=loop0
	linux	/boot/vmlinuz root=UUID=$diskuuid loop=/ubuntu/disks/root.disk ro rootflags=sync  quiet splash $vt_handoff
	initrd	/boot/initrd.img
}
### END WubiUEFI

Chạy lệnh sau:

sudo update-grub

Nếu lệnh trên không tồn tại, thử chạy các lệnh sau (đối với 32-bit, thay thế grub-efi-amd64 thành grub-efi-ia32):

sudo apt update
sudo apt install grub-efi-amd64
sudo update-grub

Nếu lệnh trên thành công, tệp /boot/grub/grub.cfg sẽ được cập nhật, nên khởi động sử dụng mục nhập trước đó.

Vui lòng sử dụng biểu tượng cảm xúc cho phản ứng của bạn hoặc một ngôi sao cho repo. Mục tiêu của dự án chưa bao giờ là để có được sự đóng góp tài chính khác.

Dự án sẽ tiếp tục miễn là chúng tôi có thời gian để duy trì nó và có rất nhiều người sử dụng nó.

Cuối cùng, nếu bạn cảm thấy WubiUEFI hữu ích, hãy đóng góp theo cách này để dự án này tiếp tục phát triển.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *