web-dev-qa-db-ja.com

GRUBが永続的に起動しません-「hd0,4が見つかりません」

Ubuntu 17.04の永続的なUSBフラッシュドライブをmkusb(dus)で作成しようとしています。 mkusb Webサイトの指示に明示的に従い、考えられるほとんどのバリエーションを試してみましたが、すべてが喜びではありませんでした。 BIOSで永続USBを選択すると、そこからgrubが起動します。 Ubuntu永続を選択します。 hd0,4のgrubオブジェクトが見つかりません。私は数日前からオンラインで解決策を探しています。

私が試したいくつかのこと:-ライブUSBフラッシュドライブから起動しながら、2番目のフラッシュドライブに永続ドライブを作成します。 -BIOSレガシーモードとセキュアブートのすべての組み合わせを有効または無効にします。 -ターゲットドライブ上のmsdosおよびgptパーティションテーブル。 -異なるフラッシュドライブ。 -異なる量の永続メモリ。 -など.

どんな提案も大歓迎です。

私のシステム:AMD64クアッドコア、16GBメモリ、(通常)UEFIセキュアモードで起動するHPラップトップ。 BIOSは最新のものです。インストールされているOSはUbuntu 17.04です。

ありがとう!! -ウォーレン

追加するには編集#1

さらに調査すると、grubはフラッシュドライブからhd0ではなくhd2としてロードしているようです。これはおそらく、2つの内蔵ハードドライブがBIOSによって最初に検出され、hd0およびhd1として認識されるためです。永続的なフラッシュドライブでgrubを取得して、hd0ではなくhd2からロードされたことを認識する方法は、現在、私の給与等級を上回っています。

追加するには#2を編集:

@ sudodus-助けてくれてありがとう。要求された情報の一部:

Mkusbおよびdusコンポーネントはすべてppaからロードされ、バージョン12.0.9です。 BIOSでは、レガシーモードが無効になっており、セキュアブートが有効になっています。 grubコマンド( "e")を編集して、hd0をhd2に変更してみました。動作します!永続的なフラッシュドライブが期待どおりに起動します。 (なぜgrubは単にrootをそれがロードされたディスクに設定しないのだろう...?)

コマンドからの出力-

warren@warren-laptop:~$ Sudo lsblk -fm
NAME   FSTYPE  LABEL              UUID                                 MOUNTPOINT                       NAME     SIZE OWNER GROUP MODE
sda                                                                                                     sda    953.9G root  disk  brw-rw----
├─sda1 vfat                       1168-7BED                            /boot/efi                        ├─sda1   256M root  disk  brw-rw----
├─sda2 ext4                       182d8f07-567e-4514-9f99-49b78767f195 /                                ├─sda2 921.6G root  disk  brw-rw----
└─sda3 swap                       8187044e-0939-4868-b81a-b5bc64bd9e7c [SWAP]                           └─sda3    32G root  disk  brw-rw----
sdb                                                                                                     sdb    698.7G root  disk  brw-rw----
└─sdb1 ext4    devel              27a0c109-82be-4ceb-b572-dedbeb412744 /home/warren/devel               └─sdb1 698.6G root  disk  brw-rw----
sdc                                                                                                     sdc     14.5G root  disk  brw-rw----
├─sdc1 ntfs    usbdata            134E2DAF76E6A9A4                     /media/warren/usbdata            ├─sdc1   3.2G root  disk  brw-rw----
├─sdc2                                                                                                  ├─sdc2     1M root  disk  brw-rw----
├─sdc3 vfat    usbboot            2EA6-44A9                                                             ├─sdc3   122M root  disk  brw-rw----
├─sdc4 iso9660 Ubuntu 17.04 AMD64 2017-04-12-03-44-04-00               /media/warren/Ubuntu 17.04 AMD64 ├─sdc4   1.5G root  disk  brw-rw----
└─sdc5 ext4    casper-rw          8a27c645-3e5c-4e7f-bf92-eb51dc0bd19f /media/warren/casper-rw          └─sdc5   9.6G root  disk  brw-rw----
warren@warren-laptop:~$ Sudo parted -ls
Model: ATA SanDisk SD8SB8U1 (scsi)
Disk /dev/sda: 1024GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  269MB   268MB   fat32           efi   boot, esp
 2      269MB   990GB   990GB   ext4
 3      990GB   1024GB  34.4GB  linux-swap(v1)


Model: ATA ST750LX003-1AC15 (scsi)
Disk /dev/sdb: 750GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name   Flags
 1      16.8MB  750GB  750GB  ext4         devel


Model:  Patriot Memory (scsi)
Disk /dev/sdc: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 2      1049kB  2097kB  1049kB               primary  bios_grub
 3      2097kB  130MB   128MB   fat32        primary  boot, esp
 4      130MB   1759MB  1629MB               primary
 5      1759MB  12.1GB  10.3GB  ext2         primary
 1      12.1GB  15.5GB  3436MB  ntfs         primary  msftdata


warren@warren-laptop:~$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
udev             7776108         0   7776108   0% /dev
tmpfs            1559788     10204   1549584   1% /run
/dev/sda2      951092244 187079792 715676736  21% /
tmpfs            7798928        12   7798916   1% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
tmpfs            7798928         0   7798928   0% /sys/fs/cgroup
/dev/sda1         258095      3496    254599   2% /boot/efi
/dev/sdb1      720011344 242201684 441165412  36% /home/warren/devel
tmpfs            1559784       168   1559616   1% /run/user/1000
/dev/sdc4        1571328   1571328         0 100% /media/warren/Ubuntu 17.04 AMD64
/dev/sdc1        3355644     17388   3338256   1% /media/warren/usbdata
/dev/sdc5        9909328     36912   9352660   1% /media/warren/casper-rw
warren@warren-laptop:~$ 

ありがとう!!

1
Warren Severin

一般的なバグ修正を見つけようとしています

通常、コンピューターはhd0としてブートドライブを識別しますが、これはコンピューターに当てはまりません。その問題を回避する方法を見つけようとします。 Toshiba laptop でLubuntu 17.04をUEFIモードでテストしましたが、バグを再現できませんでした。 だから私はあなたが見つけることができるバグ修正をテストするためにあなたの助けが必要になります。

Edit:mkusbのシェルスクリプトdus-persistentを変更し、新しいバージョン12.1.1不安定なPPAへ。主な改善点は、Ubuntu 17.04のブート構造の変更と、コンピューターがhd0からブートしないという事実に対処することです。主な違いは、isoファイル(iso9660ファイルシステム)からのイメージでパーティション#4を識別する方法です。

search --set=root --fs-uuid <the-UUID-of-partition-no-4>

そして、それはmkusb-dusによって自動的に行われます。 問題が解決するかどうかテストしてください!このリンクに従って新しいバージョンを取得します。

help.ubuntu.com/community/mkusb/gui#from_the_unstable_PPA

不安定版はまだ開発およびデバッグされています。 ppa:mkusb/unstableから次のコマンドラインを介して利用できます。

Sudo add-apt-repository universe  # this line only for standard Ubuntu

Sudo add-apt-repository ppa:mkusb/unstable
Sudo apt-get update
Sudo apt-get install mkusb               # install
# Sudo apt-get dist-upgrade              # upgrade to current version (with all other upgrades), only for installed systems
Sudo apt-get install mkusb guidus dus mkusb-common
                                         # upgrade all mkusb basic components including dus

# for persistent live drives that work in UEFI and BIOS mode with 32-bit iso files, add
Sudo apt-get install usb-pack-efi

回避策-ケースのバグ修正

フィードバック(元の質問に編集した)に感謝します。支援が容易になります。

「grubコマンド( "e")を編集してhd0hd2に変更しようとしました。動作します!永続的なフラッシュドライブは期待どおりに起動します。 ...?)からロードされました」

「USBドライブを永続的にする」パーティション#3(「usbboot」パーティション)のgrub.cfgファイルを編集することをお勧めします。これにより、バグ修正がUSBフラッシュドライブに永続的になります。しかし、私のコンピューターのように動作する他のコンピューターでは機能しません。

$ ls -l /media/lubuntu/usbboot/boot/grub/grub.cfg 
-rw-r--r-- 1 lubuntu lubuntu 1312 Apr 29 06:31 /media/lubuntu/usbboot/boot/grub/grub.cfg

grub.cfgには次のコンテンツがあり、hd0,4hd2,4に変更します。 (hd0,3hd2,3に変更することもできますが、Memtest86 +はUEFIモードでは動作しません。)

あなたの場合、「Lubuntu」の代わりに「Ubuntu」を期待できますが、それ以外は同じように見えます。

set timeout=10
set default=0

menuentry "Lubuntu-17.04-desktop-AMD64.iso - persistent live" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash persistent --
 initrd ($root)/casper/initrd.lz
}
menuentry "Lubuntu-17.04-desktop-AMD64.iso - persistent live to RAM" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash toram persistent --
 initrd ($root)/casper/initrd.lz
}
menuentry "Lubuntu-17.04-desktop-AMD64.iso - live" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash --
 initrd ($root)/casper/initrd.lz
}
menuentry "Lubuntu-17.04-desktop-AMD64.iso - recovery mode" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper ro recovery nomodeset
 initrd ($root)/casper/initrd.lz
}
submenu "Memory test" {
 menuentry "Memtest86+ works in BIOS alias CSM mode, but not in efi (UEFI) mode"{
  echo "${grub_platform} mode; (memtest86+ does not work with efi (UEFI) mode)"
 }
 menuentry "Memtest86+ 4.20" {
  set root=(hd0,3)
  echo "${grub_platform} mode; (memtest86+ does not work with efi (UEFI) mode)"
  linux16 /boot/memtest/memtest.bin
 }
 menuentry "Memtest86+-5.01" {
  set root=(hd0,3)
  echo "${grub_platform} mode; (memtest86+ does not work with efi (UEFI) mode)"
  linux16 /boot/memtest/memtest86+-5.01.bin
 }
}

代替案

別の方法としては、grub.cfgのメニュー項目をコピーし、そのうちの1つを変更して、USBフラッシュドライブを別のコンピューターで簡単に起動できるようにする2つの方法があります。

...
menuentry "Ubuntu-17.04-desktop-AMD64.iso - persistent live (hd2,4)" {
 set root=(hd2,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash persistent --
 initrd ($root)/casper/initrd.lz
}
menuentry "Ubuntu-17.04-desktop-AMD64.iso - persistent live (hd0,4)" {
 set root=(hd0,4)
 linux ($root)/casper/vmlinuz.efi boot=casper quiet splash persistent --
 initrd ($root)/casper/initrd.lz
}
...
2
sudodus

Syslinux(レガシーモード)ではなくgrub(UEFIモード)で起動している場合、「e」を入力してgrubメニュー画面からgrubコマンドを編集し、矢印キーを使用してhd0に移動し、hd2に変更します。 。 GRUB画面の下部にある指示で、XまたはF10キーを押して起動します。

変更が機能する場合は、grub.cfgファイルに編集してみてください。 Sudodusは正しいです。この場合、update-grubは機能しません。

Mkusbの議論はsudodusに任せます。古いバージョンで作成された非常に古いUSBスティックを見て混乱していました。

1
ubfan1