Как изменить устройство, на котором загружается Ubuntu?

У меня есть ноутбук с внутренним SSD (назовем его samsung-SSD), и я хотел бы установить ununtu 12.04 на внешний SSD, подключенный через USB3 (назовем это vertex2).

Я скачал ubuntu iso и создал с него загрузочный USB-ключ.

Затем я загрузился с USB-ключа и выполнил установку Ubuntu:

  /dev/sda is the internal samsung-SSD.
  /dev/sdb is the usb key from which I am installing
  /dev/sdc is the external vertex2 on which I am installing.

Установка завершена, на этот раз я загружаю Ubuntu из vertex2. Но поскольку здесь больше нет ключа usb, vertex2 известен как / dev / sdb. Ubuntu попытался загрузиться на / dev / sdc и потерпел неудачу, потому что / dev / sdc не существует.

Таким образом, появляется терминал BusyBox с сообщением

Gave up в ожидании корневого устройства. Общие проблемы ...

В этом терминале я могу сделать следующее:

# only vertex2 is plugged
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2
/dev/sdb # vertex2

# removing vertex2
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2

# pluging usb
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2
/dev/sdb # usb stick

# pluging vertex2 in addition to usb stick
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2
/dev/sdb # usb stick
/dev/sdc # vertex2

Теперь vertex2 известен как / dev / sdc (как во время установки).

> exit # this command tries to resume the boot process

И так я могу загружаться в Ubuntu.

Итак, мой вопрос: как мне настроить Ubuntu, чтобы она пыталась загрузиться с / dev / sdb вместо / dev / sdc ?

Может Я добиваюсь этого с помощью mount и chroot?

Редактировать: мой fstab:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc2 during installation
UUID=2586eee0-5f24-462b-b44d-5c9a25aebe6c /               ext2    errors=remount-ro 0       1
# swap was on /dev/sdc5 during installation
UUID=56498034-3361-4d7d-ae7f-dc8e69b582ed none            swap    sw              0       0

Чего я не понимаю, так это того, что в моем fstab, вершина2 известна как UUID. Поэтому не должно иметь значения, будет ли он отображаться как sdb или sdc. И все же я могу загружаться, только когда он отображается как sdc ... Я попытался заменить UUID вершины на sdb в fstab, и это не помогло. Как будто какой-то другой файл используется для монтирования дисков при загрузке.


Редактировать 2 : в меню загрузки я могу редактировать записи. Если я отредактирую запись Ubuntu (нажав e), я увижу этот текст:

recordfail
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd2,msdos2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos2 --hint-efi=hd2,msdos2 --hint-baremetal=ahci2,msdos2  25\
86eee0-5f24-462b-b44d-5c9a25aebe6c
        else
          search --no-floppy --fs-uuid --set=root 2586eee0-5f24-462b-b44d-5c9a25aebe6c
        fi
        linux   /boot/vmlinuz-3.5.0-17-generic root=/dev/sdc2 ro   quiet splash $vt_handoff
        initrd  /boot/initrd.img-3.5.0-17-generic

Если я изменю sdc2 на sdb2 и нажму f10, чтобы возобновить загрузку, Ubuntu успешно загружается (без запроса BusyBox) .

Этот текст находится в /boot/grub/grub.cfg. Но я не должен редактировать это напрямую. У него есть этот заголовок:

#                                                                                                                                
# DO NOT EDIT THIS FILE                                                                                                          
#                                                                                                                                
# It is automatically generated by grub-mkconfig using templates                                                                 
# from /etc/grub.d and settings from /etc/default/grub                                                                           
#   

Я не вижу / dev / sdc2 в конфигурации grub:

> sudo grep -r "sdc2" /etc/grub.d/
> #no results

Откуда взялся sdc2? Как я могу изменить его навсегда на SDB2? (Изменение в меню загрузки носит временный характер.)

6
задан 10 February 2013 в 19:12

1 ответ

Вам следует попробовать установить одно из:

GRUB_DEVICE_UUID=2586eee0-5f24-462b-b44d-5c9a25aebe6c
GRUB_DEVICE=/dev/sdb

в файле: /etc/default/grub

Затем выполнить: sudo update-grub

0
ответ дан 10 February 2013 в 19:12

Другие вопросы по тегам:

Похожие вопросы: