web-dev-qa-db-ja.com

Ubuntuが起動するデバイスを変更するにはどうすればよいですか?

私は内部SSDを搭載したラップトップを持っています(samsung-SSDと呼びましょう)、USB3を介して接続された外部SSDにununtu 12.04をインストールしたいと思います(これを頂点2と呼びましょう)。

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.

インストールが完了したら、今回は頂点2からUbuntuを起動します。しかし、usbキーはもう存在しないため、vertex2は/ dev/sdbとして知られています。/dev/sdcが存在しないため、Ubuntuは/ dev/sdcで起動しようとして失敗しました。

そのため、BusyBoxターミナルがメッセージとともに表示されます

ルートデバイスを待ってあきらめた。一般的な問題...

このターミナルでは、次のことができます。

# 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で起動できます。

だから私の質問は:/ dev/sdcではなく/ dev/sdbで起動しようとするようにubuntuを設定するにはどうすればいいですか?

mountchrootでそれを達成できますか?

編集: my 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として表示される場合にのみ起動できます... fstabで頂点UUIDをsdbに置き換えようとしましたが、解決しませんでした。起動時にドライブをマウントするために他のファイルが使用されているようです。


編集2:ブートメニューで、エントリを編集できます。 eを押してUbuntuエントリを編集すると、次のテキストが表示されます。

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                                                                           
#   

Grub configに/ dev/sdc2がありません:

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

Sdc2はどこから来たのですか?永続的にsdb2に変更するにはどうすればよいですか? (ブートメニューの変更は一時的なものです。)

6

次のいずれかを設定してみてください。

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

ファイル内:/etc/default/grub

次に実行:Sudo update-grub

2
TrinitronX