Câu trả lời:
Không có sự khác biệt.
Ubuntu 9.10 trở lên đã cài đặt GRUB2, nhưng sudo update-grub
vẫn chiếm ưu thế như lệnh tiêu chuẩn.
sudo update-grub
và sudo update-grub2
tương đương nhau, vì vậy không quan trọng bạn chạy cái nào. /usr/sbin/update-grub2
chỉ là một liên kết tượng trưng đến /usr/sbin/update-grub
.
ek@Del:~$ ls -l `which update-grub update-grub2`
-rwxr-xr-x 1 root root 64 May 17 03:07 /usr/sbin/update-grub
lrwxrwxrwx 1 root root 11 May 17 03:22 /usr/sbin/update-grub2 -> update-grub
Trên thực tế, nói chung đôi khi một lệnh có thể là một liên kết tượng trưng của một lệnh khác, nhưng chúng hoạt động khác nhau, bởi vì thực thi kiểm tra cách nó được gọi (nghĩa là bằng tên gì) và hành xử tương ứng.
Đó là không phải là trường hợp cho update-grub2
và update-grub
mặc dù, đó đều được cung cấp bởi các gói như grub-pc
cung cấp GRUB2. Hơn nữa, /usr/sbin/update-grub
thực sự chỉ là một tập lệnh shell ngắn thực hiện hầu hết các lệnh của nó thông qua một lệnh khác và chúng ta có thể xem mã nguồn 3 dòng hoàn chỉnh của nó (trong Ubuntu 12.04) để thấy rằng tên được sử dụng để gọi nó không được kiểm tra:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"
mở rộng cho tất cả các đối số dòng lệnh được truyền sau tên update-grub
hoặc update-grub2
, nhưng không phải tên đó. Và đây là nơi duy nhất trong kịch bản kiểm tra cú pháp dòng lệnh.