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, я запутался, глядя на очень старую флешку, созданную более старой версией.