LINUX.ORG.RU

[Решено] Не запускается Debian 8.6 (64 bit) после инсталляции

 , ,


0

2

Проинсталлировал на внешний USB-диск Debian 8.6 64 bit. Вся инсталляция прошла нормально. Разбитие разделов делалось инсталлятором на автомате «один раздел на всё», на разделе ext4.

При загрузке с этого USB-диска появляется сообщение:

error: attempt to read or write outside of disk 'hd0'

И grub вываливается в rescue mode.

Смотрю, видит ли Груб диск. Диск есть и виден:
ls
(hd0) (hd0,msdos1)

Смотрю корень диска:
ls (hd0,msdos1)/
./ ../ lost+found/ etc/ media/ ... boot/ ... и т. д.

Пытаюсь посмотреть каталог boot. И тут облом:
ls (hd0,msdos1)/boot
error: attempt to read or write outside of disk 'hd0'

Может быть, ему нужен слеш в конце? Нет, со слешем та же картина:
ls (hd0,msdos1)/boot/
error: attempt to read or write outside of disk 'hd0'

Начинаю проверять другие каталоги. И вот какая картина выясняется.

Grub может прочитать каталоги:
- media
- var
- sbin
- bin
- tmp
- sys
- run
- root
- proc
- home
- srv
- opt

И не может прочитать каталоги:
- etc
- usr
- lib
- lib64
- dev
- boot
- mnt

Может быть, файловая система кривая? Гружусь в RescueCD, проверяю через fsck -f -p - ошибок нет. Монтирую этот USB-диск в /mnt/disk, во все каталоги могу зайти.

Решил переставить Груб через chroot.

Прокидываю разделы устройств:
mount --bind /dev /mnt/disk/dev
mount --bind /sys /mnt/disk/sys
mount --bind /proc /mnt/disk/proc

Переключаюсь с помощью chroot на корень USB-диска:
chroot /mnt/disk /bin/bash

Узнаю версию mkcofig груба:
grub-mkconfig -v
grub-mkconfig (GRUB) 2.02~beta2-22+deb8u1

Перегенерирую конфиг груба:
grub-mkconfig -o /boot/grub/grub.cfg
... Все океюшки, ошибок нет ... 

И переустанавливаю груб:
grub-install /dev/sdb
... Все океюшки, ошибок нет ... 

Пергружаюсь, и снова Grub выпадает в rescue mode. И всё то же самое.

Что делать? Как заставить Grub загружать Linux?

★★★★★

Ответ на: комментарий от darkenshvein

Винт старенький Seagate 320Gb.

Ноут HP ProBook 450. У него и USB2 и USB3. Пробовал и туда и туда втыкать - везде ошибка.

Xintrea ★★★★★ ()

Вот тут говорят, что можно попробовать исправить в grub.cfg UUID на обычное блочное устройство /dev/sda.

conformist ★★★ ()
Ответ на: комментарий от darkenshvein

Сейчас проверил на рабочей станции - влет загрузилось. И никаких проблем. Но мне надо на ноуте запустить.

Xintrea ★★★★★ ()
Ответ на: комментарий от conformist

Вот тут говорят, что можно попробовать исправить в grub.cfg

В /boot/grub/grub.cgf содержится, по сути, конфигурация меню Груба. Чтобы конфигурация начала работать, она должна считаться с диска. А если грубовский rescue mode не может даже прямой командой считать каталог /boot, то откуда grub получит эту конфигурацию со всеми UUID и прочим барахлом?

Xintrea ★★★★★ ()

Это кривой BIOS, который не умеет правильно передавать GRUB'у доступ дальше определённой координаты на большом USB-диске. Вам не повезло, и /boot оказался за этой границей. Решение: отрезайте *небольшой* раздел в *начале* диска и делайте его /boot.

anonymous ()
Ответ на: комментарий от anonymous

Точна. Всемирно известная компания HP пишет кривые биосы, которые не могут нормально работать с внешними винтами на 320Gb. И это в век терабайтников.

Сдвинул основной раздел и сделал в начале раздельчик на 500Mb. Cкинул туда содержимое boot, перегенерил конфиг и переставил груб в chroot, предварительно подмонтировав еще и этот раздел как boot.

Усе завелось. Потом подравил /etc/fstab, чтоб в нем монтировался boot после старта системы.

Xintrea ★★★★★ ()

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

h578b1bde ★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.