/etc/default/grubฉันทำให้การเปลี่ยนแปลงบางอย่างในไฟล์ด้วงของฉันภายใต้ ในบทเรียนบางอย่างที่ฉันได้เห็นและคนอื่น ๆsudo update-grub sudo update-grub2อะไรคือความแตกต่าง?
/etc/default/grubฉันทำให้การเปลี่ยนแปลงบางอย่างในไฟล์ด้วงของฉันภายใต้ ในบทเรียนบางอย่างที่ฉันได้เห็นและคนอื่น ๆsudo update-grub sudo update-grub2อะไรคือความแตกต่าง?
คำตอบ:
ไม่มีความแตกต่าง
Ubuntu 9.10 และใหม่กว่ามีการติดตั้ง GRUB2 แต่sudo update-grubยังคงมีชัยเป็นคำสั่งมาตรฐาน
sudo update-grubและsudo update-grub2เทียบเท่าดังนั้นจึงไม่สำคัญว่าคุณจะเรียกใช้งานรุ่นใด /usr/sbin/update-grub2เป็นเพียงการเชื่อมโยงสัญลักษณ์/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
ที่จริงแล้วโดยทั่วไปการพูดบางครั้งคำสั่งหนึ่งอาจเป็นลิงก์สัญลักษณ์ของอีกคำสั่งและพวกมันก็มีพฤติกรรมที่แตกต่างกันเพราะปฏิบัติการตรวจสอบว่ามันถูกเรียกใช้อย่างไร (เช่นชื่ออะไร)
นั่นคือไม่ได้กรณีสำหรับupdate-grub2และupdate-grubแม้ว่าซึ่งมีทั้งที่จัดไว้ให้โดยแพคเกจเหมือนgrub-pcที่ให้ GRUB2 นอกจากนี้/usr/sbin/update-grubจริงๆแล้วเป็นเพียงเชลล์สคริปต์สั้น ๆ ที่ทำงานส่วนใหญ่ผ่านคำสั่งอื่นและเราสามารถดูซอร์สโค้ด 3 บรรทัดที่สมบูรณ์ (ใน Ubuntu 12.04) เพื่อดูว่าชื่อที่ใช้เรียกใช้ไม่ได้ถูกตรวจสอบ:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"ขยายไปยังอาร์กิวเมนต์บรรทัดคำสั่งทั้งหมดที่ส่งผ่านหลังจากชื่อupdate-grubหรือupdate-grub2แต่ไม่ใช่ชื่อนั้น และนี่เป็นที่เดียวในสคริปต์ที่มีการตรวจสอบไวยากรณ์บรรทัดคำสั่งเลย