GRUB не загружается постоянно - "hd0,4 не найден"

Я пытаюсь сделать постоянную флешку Ubuntu 17.04 с помощью mkusb (dus). Я четко следовал инструкциям на веб-сайте mkusb, и я попробовал большинство вариантов, которые только можно придумать, и все без радости. Когда я выбираю постоянный USB в BIOS, grub загружается с него; Я выбираю Ubuntu постоянный; grub объекты с hd0,4 не найдены. Я искал в Интернете решение уже несколько дней.

Некоторые из вещей, которые я пробовал: - Создание постоянного диска на второй флешке при загрузке с флэш-накопителя с USB-накопителем; - Все сочетания устаревшего режима BIOS и безопасной загрузки включены и отключены; - таблицы разделов msdos и gpt на целевом диске; - разные флешки; - разное количество постоянной памяти; - так далее.

Любые предложения будут с благодарностью.

Моя система: ноутбук HP с четырехъядерным процессором AMD64, 16 ГБ памяти, загрузка (обычно) в безопасном режиме UEFI. BIOS является последним. Установленная ОС - Ubuntu 17.04.

Спасибо!! -Warren

Изменить #1, чтобы добавить:

При дальнейшем расследовании кажется, что grub загружается с флешки как hd2, а не hd0. Вероятно, это связано с тем, что два внутренних жестких диска сначала обнаруживаются BIOS и распознаются как hd0 и hd1. Как получить grub на постоянную флешку, чтобы узнать, что она была загружена с hd2, а не hd0 в настоящее время выше моей зарплаты.

Изменить № 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:~$ 

Спасибо!!

2 ответа

Решение

Попытка найти общее исправление

Обычно компьютер определяет загрузочный диск как hd0, но это не так в вашем компьютере. Я постараюсь найти способ обойти эту проблему. Я тестировал Lubuntu 17.04 на своем ноутбуке Toshiba в режиме UEFI и не смог воспроизвести ошибку. Поэтому мне понадобится ваша помощь, чтобы проверить все найденные ошибки.

Изменить: я изменил сценарий dus-persistent mkusb и загрузил новую версию 12.1.1 в нестабильный PPA. Основные улучшения касаются изменения структуры загрузки Ubuntu 17.04 и того факта, что ваш компьютер не загружается с hd0. Основное отличие состоит в том, как идентифицировать раздел #4 с изображением из iso-файла (файловая система iso9660),

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

и это делается автоматически mkusb-dus. Пожалуйста, проверьте, если это решает проблему! Вы получаете новую версию по этой ссылке,

https://help.ubuntu.com/community/mkusb/gui

Нестабильная версия все еще разрабатывается и отлаживается. Это доступно из 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") и изменить hd0 в hd2, Это работает! Постоянная флешка загружается как положено. (Интересно, почему grub не просто устанавливает root на диск, с которого он был загружен...?)"

Я бы предложил редактировать grub.cfg файл в разделе № 3 "USB-накопитель должен быть постоянным" (раздел "usbboot"). Это должно сделать исправление постоянным на вашем 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,4 в hd2,4, (Вы также можете изменить hd0,3 в hd2,3, но Memtest86+ не будет работать в режиме UEFI в любом случае.)

В вашем случае вы можете ожидать "Ubuntu" вместо "Lubuntu", но в противном случае это будет выглядеть так же.

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 и измените один из них, чтобы иметь две альтернативы, чтобы USB-накопитель легко загружался на разных компьютерах.

...
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
}
...

Предполагая, что вы загружаетесь с grub (режим UEFI), а не с syslinux (устаревший режим), вы можете просто отредактировать команды grub с экрана меню grub, набрав "e", затем с помощью клавиш со стрелками перейти к hd0 и изменить его на hd2., Инструкции внизу экрана grub, управляйте X или F10, чтобы затем загрузиться.

Если изменения работают, попробуйте отредактировать их в файле grub.cfg. Sudodus прав, update-grub не будет работать в этом случае.

Я оставлю обсуждение mkusb на sudodus, я запутался, глядя на очень старую флешку, созданную более старой версией.

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