web-dev-qa-db-fra.com

Comment changer le périphérique sur lequel Ubuntu démarre?

J'ai un ordinateur portable avec un SSD interne (appelons-le samsung-SSD), et j'aimerais installer ununtu 12.04 sur un SSD externe connecté via USB3 (appelons celui-ci vertex2).

J'ai téléchargé une iso Ubuntu et créé une clé USB de démarrage à partir de celle-ci.

Ensuite, j'ai démarré sur la clé USB et suivi l'installation d'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.

L'installation terminée, je démarre Ubuntu cette fois à partir du vertex2. Mais comme la clé USB n’est plus là, le sommet 2 est connu sous le nom de/dev/sdb. Ubuntu a essayé de démarrer sur/dev/sdc et a échoué, car/dev/sdc n’existe pas.

Donc, un terminal BusyBox apparaît, avec le message

J'ai attendu le périphérique racine. Problèmes communs...

Dans ce terminal, je peux effectuer les opérations suivantes:

# 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

Maintenant, le vertex2 est connu sous le nom / dev/sdc (comme lors de l'installation).

> exit # this command tries to resume the boot process

Et de cette façon, je peux démarrer sur Ubuntu.

Ma question est donc la suivante: comment configurer ubuntu pour qu’il essaie de démarrer / dev/sdb au lieu de / dev/sdc?

Puis-je y parvenir avec mount et chroot?

Edit: mon 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

Ce que je ne comprends pas, c’est que dans mon fstab, le vertex2 est connu par son UUID. Donc, peu importe qu’il apparaisse comme sdb ou sdc. Et pourtant, je ne peux démarrer que quand il apparaît en tant que sdc ... J'ai essayé de remplacer le vertex UUID par sdb dans le fstab, et cela n'a pas aidé. C'est comme si un autre fichier était utilisé pour monter des lecteurs au démarrage.


Edit 2: Dans le menu de démarrage, je peux modifier des entrées. Si je modifie l'entrée ubuntu (en appuyant sur e), je vois le texte suivant:

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

Si je change de sdc2 en sdb2 et si j'appuie sur f10 pour reprendre le démarrage, ubuntu démarre avec succès (pas d'invite BusyBox).

Ce texte se trouve dans /boot/grub/grub.cfg. Mais je ne devrais pas le modifier directement. Il a cet en-tête:

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

Je ne vois pas/dev/sdc2 dans la configuration de grub:

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

D'où vient sdc2? Comment puis-je le changer définitivement à sdb2? (La modification dans le menu de démarrage n'est que temporaire.)

6
Benjamin Crouzier

Vous devriez essayer de régler l'un des éléments suivants:

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

dans le fichier: /etc/default/grub

Puis lancez: Sudo update-grub

2
TrinitronX