У меня установлен grub2 на флешку.
Наряду с минимальной установкой сервера Ubuntu 10.04 LTS.
Это было создано с помощью утилиты debootstrap.
Тем не менее, сейчас я пытаюсь заставить его загрузиться, и у меня возникают проблемы с его получением.
На флеш-накопителе есть один основной раздел ext2, и я скопировал на него загрузчик вместе с необходимыми мне ядром и модулями ядра, а также скриптами grub.d.
Я подумал, поскольку это флэш-накопитель, я, вероятно, должен использовать uuid вместо имен устройств.
Во всяком случае, когда он пытается загрузиться, grub2 возвращает эту ошибку обратно в строку восстановления с этой ошибкой.
error: no such device: 792f......aaee3
Итак, я выполнил команду ls так:
grub rescue> ls
(hd0) (hd0,msdos1)
Это сбивает с толку. grub2 предполагает, что первый раздел - msdos, а не ext2? Может быть, поэтому он не запускается? Я помню, как где-то видел, что некоторые биосы рассматривают флэш-накопители как дисководы и делают первый раздел msdos? это то, что здесь происходит?
РЕДАКТИРОВАТЬ :
Интересно, что диск запуска make в Ubuntu выдал точно такую же ошибку. Тем не менее, я не на 100% по этому поводу, потому что, когда я запустил его, он не смог установить загрузчик. Поэтому я установил его вручную с помощью команды "grub-install / dev / sdb"
Update1 :
Я обнаружил, что потому что я создал grub.cfg в другой системе что у него был hd1 во всех записях. Поэтому я изменил его на hd0.
Теперь я заметил, что могу запускать эти команды в командной строке.
ls (hda, 1) /
Я решил попробовать
insmod нормальный нормальный
И, конечно же, он вышел с меню, и я смог выбрать пункт меню и загрузочный linux.
Теперь, как мне исправить ошибку «нет такого устройства». Uuid в / dev / sda1 определенно является тем, чем он является.
Update2 :
Хорошо, это действительно странно. Я вытащил флешку и подключил ее к другому компьютеру. blkid говорит следующее:
/dev/sdb1: LABEL="Transcend" UUID="597D-50B2" TYPE="vfat"
/dev/sda5: UUID="0c81f24b-edeb-4be9-9859-074f3783e618" TYPE="swap"
Во-первых, / dev / sda1 не отображается. Может ли это быть как-то связано с тем, что он находится в LVM?
Во-вторых, UUID для sdb1 моего трансвестита, моего trancend, короткий? и это отличается от того, что было раньше. Как это случилось? UUID генерируются один раз, когда файловая система создается, или они иногда генерируются некоторыми утилитами, которые я, возможно, запускал? и перемонтировал его. Возможно, это ошибка в Kubuntu 11.10 (мой настольный компьютер).
Подобная ошибка, мой отказ был то, что после того, как я создал файловую систему, я не перечитывал таблицу разделов снова ядром.
Решение перезагружает/перечитывает таблицу разделов и делает:
генерируйте конфигурацию снова
grub-mkconfig > /boot/grub/grub.cfg
переустановите с новой конфигурацией
grub-install
Исправлено.
1110 На случай, если кому-то интересно. Это то, что я сделал, чтобы заставить его работать.
Привод большого пальца отображается как / dev / sdb
Запустите эти команды
sudo mount /dev/sdb1 /mnt
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt/$i; done
sudo chroot /mnt
grub-install /dev/sdb
update-grub
Затем отредактируйте /boot/grub/grub.cfg Изменили все строки, которые говорят (hd1,1), (hd0,1)
Тогда беги ...
exit
for i in /dev/pts /dev /proc /sys; do sudo umount /mnt/$i ; done
Далее.
Кажется, что было две проблемы. Они были связаны с неправильным указанием устройства в grub.cfg (то есть hd1 должно быть hd0).
Во-вторых, ошибка в биосе сервера. Он продолжал ссылаться на uuid для файловой системы на другом флэш-накопителе, с которым я раньше играл. Теплая перезагрузка, казалось, удерживала этот uuid там. Холодный ботинок это исправил.