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

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

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

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

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

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

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

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

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

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

  1. Вставьте USB-накопитель Xubuntu live
  2. Выберите "попробовать Xubuntu".
  3. В меню настроек выберите пункт "установить Xubuntu".

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

Найдите раздел, в котором присутствует 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 linuxgrub rescue > ls (hd0,msdos5)/grub rescue > set root=(hd0,msdos5)grub rescue > set prefix=(hd0,msdos5)/boot/grubgrub rescue > insmod normalgrub rescue > normal

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

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

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

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

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

Я последовал некоторым советам и выполнил новую установку, используя дополнительные параметры (не используйте "стереть диск и установить ubuntu"), используя эти настройки раздела:

  1. Создайте раздел ext4 объемом 1 ГБ (1024 МБ) на начало диска; монтируется в "/boot"
  2. Создайте желаемое установочное пространство в ext4, смонтированном в "/" МИНУС ваша область подкачки
  3. Используйте оставшееся пространство для подкачки. (ВСЕ разделы будут первичными)
  4. В раскрывающемся меню boot install выберите раздел "/boot". Не корень диска по умолчанию!

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

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

Grub> ls

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

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

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

До тех пор, пока grub не выдаст либо список файлов в этом разделе, либо не покажет тип файловой системы и дату последнего изменения.

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

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

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

Grub> ls /boot

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

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

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

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

Grub> boot

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

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

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

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

sudo dpkg --configure -asudo apt-get install --reinstall linux-image-$(uname -r)

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

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

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

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

Это случайная проблема.

В этом случае лучшим решением является создание /boot папка в своем собственном разделе

Детали таковы здесь

Я использовал ответ @Andrew для восстановления существующей системы.

В моем случае у меня была следующая система:

  • /sda1 основная загрузка Windows ntfs
  • /sda2 основная система ntfs Windows
  • /sda5 extended ext4 Старый корень Ubuntu
  • /sda6 расширенный обмен

По сути, я установил новую ubuntu помимо старой с независимым разделом / boot, а затем переназначил старую ubuntu, чтобы использовать новую / boot.

  1. Начните установку новой ubuntu с live CD, перейдите в раздел Дополнительно.

  2. Освободите место для раздела /boot (постоянного) и корневого раздела (временного) для новой ubuntu.

Я изменил размер раздела ntfs, чтобы создать основной раздел объемом 4 Гб / загрузочный, и удалил раздел подкачки, чтобы создать новый корневой раздел (/). /boot, возможно, не обязательно должен быть основным, и все можно было бы сделать внутри перепрофилированной подкачки без изменения размера.Это была моя таблица разделов после этого:

  • /sda1 основная ntfs (загрузка Windows)
  • /sda2 основная ntfs (система Windows) (уменьшенная)
  • /sda4 / ext4 /boot
  • /sda5 extended ext4 / (Старый корень Ubuntu)
  • /sda6 extended ext4 / (Новый корень Ubuntu)
  1. После установки вы можете получить доступ к старому ubuntu в меню grub под memtest (он распознается автоматически, как если бы это был раздел Windows). Загрузи его.

  2. Отредактируйте /etc/fstab, чтобы смонтировать новый /boot, т.е.

UUID=2d7611ad-0547-4d7c-a595-3f4103ff0b0e /boot ext4 по умолчанию 0 2

  1. Добавьте свое старое ядро в новый загрузочный раздел:
  • Вариант 1 (проверено) Смонтируйте новый /boot и переустановите все linux-образы

    крепление /загрузка

    apt-get install $(список apt --installed | grep linux-image | cut -d / -f -i)

  • Вариант 2 (не тестировался) Скопируйте все из вашего старого / boot в новый, кроме папки grub

    cp -dR /boot /tmp

    rm -r /tmp/boot/grub

    крепление /загрузка

    cp /tmp/boot/* /boot

  1. Удалите новый раздел ubuntu и заново создайте раздел подкачки. Используйте gparted для графического пользовательского интерфейса. Это моя таблица разделов после этого
  • /sda1 основная ntfs (загрузка Windows)
  • /sda2 основная ntfs (система Windows) (уменьшенная)
  • /sda4 / ext4 /boot
  • /sda5 extended ext4 / (Старый корень Ubuntu)
  • /sda6 расширенный обмен
  1. Используйте blkid, чтобы найти UUID вашего нового раздела подкачки, обновите fstab новым UUID

  2. Обновите Grub с помощью update-grub и перезагрузитесь.

  3. Если все по-прежнему работает, umount /boot. удалите все, что находится внутри вашего старого / boot, и перемонтируйте его.

(почти)дубликат boot - Booting Ubuntu Failure : error: attempt to read or write outside of disk 'hd0' - Ask Ubuntu