Что делать, когда я получаю сообщение об ошибке «попытка чтения или записи вне диска« hd0 »» и Boot Repair не решает проблему?

35

Я пытался установить Xubuntu 13.10 на старый компьютер. Я заметил некоторые трудности во время установки, которые могут иметь отношение к моим проблемам. В частности:

  1. Разрешение экрана было крайне низким. Окна были намного больше экрана, и мне пришлось переместить их, чтобы перейти к кнопке «Далее».

  2. Курсор мыши был размытым цветом, который постоянно мигал.

Установка завершена, и я попытался перезагрузить компьютер. Сразу же я получил:

error: attempt to read or write outside of disk 'hd0'. 
Entering rescue mode... 
grub rescue>

Я сделал USB-диск Boot Repair , загрузил его и выбрал восстановление по умолчанию. Приложение сообщило мне, что проблема устранена и что если это не решит мою проблему, я должен показать эту ссылку кому-то, кто может мне помочь.

Что я должен делать дальше? Я уже пытался установить Ubuntu и Xubuntu, оба безуспешно.

РЕДАКТИРОВАТЬ:

Я нашел обходной путь.

  1. Вставьте Xubuntu Live USB
  2. Выберите «попробовать Xubuntu»
  3. В меню настроек выберите «установить Xubuntu»

Это решило проблему для меня. Поскольку это решено, я не могу проверить ответ.

Мартин Дроздик
источник
(почти) копия
Reinier Post

Ответы:

36

Найдите раздел, в котором находится Linux, с помощью следующей техники

grub rescue > ls
(hd0) (hd0, msdos9)
grub rescue > ls (hd0,msdos9)/
grub rescue > ls (hd0,msdos8)/
grub rescue > ls (hd0,msdos5)/ # suppose this is root and bootloader of linux
grub rescue > ls (hd0,msdos5)/
grub rescue > set root=(hd0,msdos5)
grub rescue > set prefix=(hd0,msdos5)/boot/grub
grub rescue > insmod normal
grub rescue > normal

Теперь появится меню загрузки системы. Загрузитесь в Linux.

sudo update-grub
sudo grub-install  /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb

Это исправляет загрузчик.

user223882
источник
17
Я не понимаю, что это должно делать. Вы указываете чертовски много команд, ни одна из которых не имеет никакого смысла для меня. Пожалуйста, добавьте немного больше поясняющего текста! Почему вы «отсчитываете» от msdos9 до 5? Как вы видите, что это Linux? В моем случае это показывает (hd0, msdos1)! Я не могу «отсчитать» - и после того, как я установил root и префикс и сделал «insmod normal», я получаю точно такое же сообщение об ошибке, как и раньше. Сожалею. Это не тот ответ, с которым может работать кто угодно. :(
Зордид
13
Как только я набираю, insmod normalя снова получаю сообщение: «ошибка: попытка чтения или записи вне раздела».
user643722
2
Вы говорите «предположим, что это Linux», не говоря, как я могу сказать, какой из Linux. Всякий раз, когда я набираю insmod normal, я получаю сообщение «error: unknown filesystem», это не работает для меня. Кроме того, вы можете объяснить, почему это происходит в первую очередь?
msknapp
1
Лучшее, что я получил, это еще одна подсказка. Меню никогда не всплывает.
jbo5112
2
Я согласен с @Zordid - просто список загадочных команд без объяснения того, что делают эти команды, не только недостаточен, но может быть потенциально опасен.
Johsm
27

Для всех, у кого есть эта проблема:

Это происходило со мной, когда новая установка или восстановление grub работали и перезагружались, но в следующий раз, когда я перезагружался, он получал ту же самую «попытку чтения ошибки». В большинстве случаев у меня возникала паника ядра, и компьютер требовал перезагрузки.

Я последовал некоторому совету и сделал новую установку, используя расширенные опции (не используйте «erase disk and install ubuntu»), используя следующие настройки раздела:

  1. Создайте раздел ext4 объемом 1 ГБ (1024 МБ) в начале диска; монтируется в "/ boot"
  2. Создайте желаемое пространство для установки в ext4, смонтированном в "/" МИНУС вашей области подкачки
  3. Используйте оставшееся место для обмена. (ВСЕ разделы будут первичными)
  4. В раскрывающемся меню загрузки выберите раздел «/ boot». Не дефолтный рут-диск!
Эндрю
источник
Это работало для меня, когда команды в принятом ответе получали «Файловая система не распознана». Я использовал тот же набор файловых систем, но этот маленький выделенный / загрузочный раздел решил мою проблему. Спасибо.
GregHNZ
Кажется, это также работает, если / boot является единственным основным разделом.
Аарон Мейсон
Присоединился к этому сайту, просто чтобы сказать, что это также сработало для меня. Небольшой загрузочный раздел был тем, что мне нужно, чтобы это работало при установке Ubuntu на внешний жесткий диск. Благодарность!
rayryeng - Восстановить Монику
Это помогло мне: у меня был большой (> 5 ТБ) / раздел, добавление маленького / загрузочного раздела
устранило
Можно ли это сделать, не удаляя существующий раздел? У меня большой раздел со всеми моими данными, начиная с начала диска.
пир
6

Это может быть легко решено с помощью Grub Rescue. Первый ответ не совсем полный, и я сначала получил ту же ошибку. Вот как это работает:

1-й нам нужно найти основной раздел. Это будет место, где будут находиться файлы, необходимые для загрузки Linux, поэтому мы вводим это -

Grub> ls

Теперь вы должны увидеть список, сравнимый с (hd0) (hd0, msdos5) (hd0, msdos1). Обратите внимание, что у вас могут быть другие разделы, чем у меня, а также несколько дисков, но процесс тот же.

Теперь ищите разделы, чтобы найти основной -

Grub> ls (hd0)
Grub> ls (hd0,msdos5)
Grub> ls (hd0,msdos1)

Пока grub не выдаст список файлов в этом разделе или покажет тип файловой системы и дату последней модификации.

Во-вторых, нам нужно настроить несколько вещей, как только мы найдем наш основной раздел -

Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set root=(hd0,msdos1)
Grub> set

После выполнения последней заданной команды Grub выведет список различных параметров. Теперь давайте проверим, что мы установили правильный корень и префикс -

Grub> ls /boot

Grub должен вывести список файлов, содержащихся в / boot.

3-й нам нужно установить точку монтирования и загрузить ядро ​​-

Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img

И, наконец, мы загружаем систему -

Grub> boot

Если вы в конечном итоге загрузитесь в оболочку busybox, просто введите fsck /dev/sda1. После этого просто войдите exitи ваша система загрузится нормально.

Зак Паркер
источник
Спасли мою жизнь, спасибо!
Тимма
3

Я решил эту проблему, переместив свой раздел Linux близко к началу жесткого диска. Когда раздел Linux был в конце моего жесткого диска 120 ГБ (40 ГБ от конца), я получил эту проблему. Ни одно решение не сработало. После переноса раздела linux в пространство с 40Gb на 80Gb проблема исчезла.

Джон
источник
1
Как переместить раздел Linux в начало диска?
пир
1

После долгих поисков я попробовал это решение, и оно хорошо работает, чтобы переустановить ядро:

sudo dpkg --configure -a
sudo apt-get install --reinstall linux-image-$(uname -r)
Зеяд Ассем
источник
0

Я достигаю этой проблемы, когда я использовал диск vmdk из пакета виртуальной машины OVA в virt-manager / QEMU / KVM. Виртуальная машина не с этим сообщением об ошибке.

Решением было преобразовать vmdk в qcow2:

qemu-img convert -O qcow2 MyAppliance-disk1.vmdk MyAppliance.qcow2

И вместо этого использовать преобразованный образ в virt-manager.

Хонза
источник
0

У меня была эта проблема при попытке установить Ubuntu 18 Server и Xubuntu 18 на сервер Dell. Выбор UEFI вместо Legacy в меню BIOS исправил это.

arzach84
источник