Возникли проблемы с загрузкой Ubuntu Grub2 с моего внешнего жесткого диска

Я установил Ubuntu на внешний жесткий диск но он не загружается на моем ноутбуке. Что мне делать?

Я прочитал и отследил источник проблемы до Grub2. По-видимому, Grub2 не использует UUID устройства и вместо него использует каталог linux (/dev/sdf2). Это означает, что всякий раз, когда я подключаю свой e-HDD к системе, к которой подключено другое количество дисков, я не смогу загрузиться без редактирования команды загрузки. Я не очень хорошо это понимаю, но это что я получил из того, что прочитал.

есть ли способ исправить это?

вот мой grub config (обрезанный, чтобы показать пример записи ядра). Я понятия не имею, почему он не использует UUID. Я его ни разу не подправлял...

### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-20-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    linux   /boot/vmlinuz-2.6.31-20-generic root=/dev/sdc2 ro   quiet splash
    initrd  /boot/initrd.img-2.6.31-20-generic
}
menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    linux   /boot/vmlinuz-2.6.31-20-generic root=/dev/sdc2 ro single 
    initrd  /boot/initrd.img-2.6.31-20-generic
}
1
задан quack quixote
29.03.2023 3:01 Количество просмотров материала 3234
Распечатать страницу

2 ответа

проблема в том, что мое устройство.карта не была настроена должным образом, что привело к grub, используя имена ubuntu, например sdf2, а не UUIDs жесткого диска. исправление состояло в обновлении устройства.карта, а затем обновить grub2. Это делается путем запуска "drivemap", я думаю, затем update-grub. Я не слишком уверен в команде для обновления устройства.карте, потому что я сделал это около недели назад, Но да. Это на случай, если кто-нибудь столкнется с моей проблемой.

1
отвечен cesar 2023-03-30 10:49

хорошо, вы правы, что это не захват UUIDs, что кажется мне странным.

вот как запись ядра должны посмотрите (это из моего Ubuntu 9.10 VM, слегка изменен, но это должно быть довольно складе):

menuentry "Ubuntu, Linux 2.6.31-20-generic" {
    recordfail=1
    if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set b22c7fe9-4354-40bf-b9bf-87a469289f6e
    linux /boot/vmlinuz-2.6.31-20-generic root=UUID=b22c7fe9-4354-40bf-b9bf-87a469289f6e ro
    initrd        /boot/initrd.img-2.6.31-20-generic
}

The / boot/grub / grub.cfg файл генерируется, когда что-то работает update-grub из скриптов / etc / grub.d и переменные в файле /и т. д./По умолчанию/харч.


  • теперь в файле по умолчанию есть переменная GRUB_DISABLE_LINUX_UUID, если значение true даст root=/dev / sdXY значение linux строка ядра (вместо root=UUID=... значение). Не думаю, что это твоя проблема, но проверь /и т. д./По умолчанию/харч файл, чтобы убедиться. Вы должны увидеть эти строки (the # в начале строки означает, что он закомментирован):

    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true
    

    если вы видите GRUB_DISABLE_LINUX_UUID без # в начале, вставьте его, сохраните файл и запустите sudo update-grub восстановить grub.cfg. Тогда проверь grub.cfg еще раз, чтобы увидеть, если это выглядит правильно.


  • если файл по умолчанию выглядит нормально, проверьте сами UUID вашего диска. это возможно, что UUID дисков установлены неправильно или не обнаруживаются правильно. uDev имеет задание создания символических ссылок в дереве устройств для UUID дисков; проверьте их:

    $ ls -l /dev/disk/by-uuid
    total 0
    lrwxrwxrwx 1 root root 10 2010-04-18 04:15 b22c7fe9-4354-40bf-b9bf-87a469289f6e -> ../../sda1
    lrwxrwxrwx 1 root root 10 2010-04-18 04:15 e1c64ac1-186d-4c15-8833-6072ac6421df -> ../../sda5
    

    если это не показывает раздел, который вы ожидаете увидеть, вам может потребоваться проверить файловую систему непосредственно с помощью tune2fs (manpage) (замените / dev / sda1 с правым прибором name):

    $ sudo tune2fs -l /dev/sda1 | grep UUID
    Filesystem UUID:          b22c7fe9-4354-40bf-b9bf-87a469289f6e
    

    если это отсутствует, вы можете воссоздать его с:

    $ sudo tune2fs -U random /dev/sda1
    

    теперь проверьте tune2fs-l выход, а затем проверить / dev / disks / by-uuid снова. Может потребоваться перезагрузка, прежде чем uDev получит изменения. The update-grub скрипты должны теперь забрать UUID, поэтому повторно запустите его и проверьте новый grub.cfg чтобы увидеть, если она выглядит право.


  • если ничего из этого не получается, возможно, вам придется копнуть немного глубже. Давайте проверим наши предположения:
    • как ваш загрузочный диск разбит на разделы? (fdisk-l)
    • как отформатирован загрузочный диск? (ext2/3 / 4? FAT32? Файловой системы NTFS?)
    • вы устанавливали через Wubi?
0
отвечен quack quixote 2023-03-30 13:06

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх