Яка різниця між update-grub та update-grub2?


51

Я вношу деякі зміни у свій файл grub під /etc/default/grub. У деяких навчальних посібниках я бачив sudo update-grubі в інших sudo update-grub2. Яка різниця?

Відповіді:


66

Різниці немає.

У 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, але не самого цього імені. І це єдине місце в сценарії, що синтаксис командного рядка перевіряється взагалі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.