/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
แต่ไม่ใช่ชื่อนั้น และนี่เป็นที่เดียวในสคริปต์ที่มีการตรวจสอบไวยากรณ์บรรทัดคำสั่งเลย