Você deve tentar definir um de:
GRUB_DEVICE_UUID=2586eee0-5f24-462b-b44d-5c9a25aebe6c
GRUB_DEVICE=/dev/sdb
no arquivo: /etc/default/grub
Em seguida, execute: sudo update-grub
Eu tenho um laptop com um SSD interno (vamos chamá-lo de samsung-SSD), e gostaria de instalar o ununtu 12.04 em um SSD externo conectado via USB3 (vamos chamar esse vertex2).
Eu baixei um iso do Ubuntu e criei uma chave usb inicializável dele.
Então eu inicializei na chave usb e segui a instalação do 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.
A instalação completa, eu inicializo o ubuntu desta vez a partir do vertex2. Mas como a chave usb não está mais aqui, o vertex2 é conhecido como / dev / sdb. O Ubuntu tentou inicializar em / dev / sdc e falhar, porque / dev / sdc não existe.
Assim, um terminal BusyBox aparece, com a mensagem
Deu a espera de um dispositivo raiz. Problemas comuns ...
Neste terminal, posso fazer o seguinte:
# 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
Agora o vertex2 é conhecido como / dev / sdc (como durante a instalação).
> exit # this command tries to resume the boot process
E dessa forma eu posso inicializar no Ubuntu.
Então, minha pergunta é: como eu configuro o ubuntu para que ele tente inicializar em / dev / sdb ao invés de / dev / sdc ?
Posso conseguir isso com mount
e chroot
?
Editar: meu 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
O que eu não entendo é que no meu fstab, o vertex2 é conhecido pelo seu UUID. Portanto, não importa se aparece como sdb ou sdc. E ainda assim eu sou capaz de arrancar apenas quando aparece como sdc ... Eu tentei substituir o vértice UUID por sdb no fstab, e isso não ajudou. É como se algum outro arquivo fosse usado para montar unidades na inicialização.
Editar 2 : no menu de inicialização, posso editar entradas. Se eu editar a entrada do Ubuntu (pressionando e
), eu vejo este texto:
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
Se eu mudar sdc2 para sdb2 e pressionar f10 para retomar a inicialização, o ubuntu é inicializado com sucesso (sem prompt do BusyBox).
Este texto está localizado em /boot/grub/grub.cfg
. Mas eu não deveria editá-lo diretamente. Tem esse cabeçalho:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
Não vejo / dev / sdc2 na configuração do grub:
> sudo grep -r "sdc2" /etc/grub.d/
> #no results
De onde vem o sdc2? Como faço para alterá-lo permanentemente para sdb2? (A mudança no menu de inicialização é apenas temporária.)
Você deve tentar definir um de:
GRUB_DEVICE_UUID=2586eee0-5f24-462b-b44d-5c9a25aebe6c
GRUB_DEVICE=/dev/sdb
no arquivo: /etc/default/grub
Em seguida, execute: sudo update-grub