Восстановление загрузчика (с личной практики)

Previous Topic Next Topic
 
classic Классический list Список threaded Древовидный
3 сообщения Инструменты
Ответить | Древовидный
Открыть эту статью в виде дерева
|

Восстановление загрузчика (с личной практики)

Tauri
Моё почтение! Уже будучи пользователем Линукса более полутора лет хотел бы поделиться своим (конечно не своим) способом восстановления загрузчика grub коим я пользуюсь с самого начала освоения мира Линукса. Наверное как и все переходящие с Виндовс на Линукс я не смог сразу же вот так отказаться от первой Системы поэтому устанавливал Линукс второй на своем ноутбуке и на десктопе. К счастью особых проблемм с этим никогда не возникало наверное по причине того, что однажды как то удачно я уже не помню где прочитал и взял на вооружение очень практичный и доступный способ восстановления grub чем и хочу поделиться кто интересуется...Для восстановления не требуется устанавливать никаких программ а нужен лишь загрузочный диск или флэшка с которых вы и устанавливали свою версию Линукса. Можно и не свою версию лишь бы подходила разрядность...
Итак, предположим, у нас есть правильный диск с Linux. Загружаемся с него (в режиме Live).
 Откройте терминал и выполните:
sudo fdisk -l
В результате вы увидите что-от подобное как у меня:

 
Тут обратите внимание на строку с записью Linux, это — диск, и раздел где установлена ваша ubuntu. В данном случае у меня это sda5 у вас может быть иначе.
 Открываем консоль и монтируем нужный логический диск (тот, на котором установлена восстанавливаемая система).

sudo mount /dev/sda5 /mnt

Где /dev/sda5 -- это внутреннее именование нужного раздела диска.
Если вы не знаете, как называется нужный раздел диска, выполните команду "mount" -- она покажет все примонтированные разделы. После чего зайдите в файловый менеджер и примонтируйте нужный раздел. Снова посмотрите в mount -- там добавилась строчка. В самом начале которой написано нечто вроде /dev/sdXY. X -- буква, Y -- число. Итак, используя написанную выше команду, примонтируйте раздел в папку /mnt.

sudo mount --bind /dev /mnt/dev

sudo mount --bind /proc /mnt/proc

Этими командами мы монтируем служебные папки внутри примотированного раздела. Теперь, когда подготовлен нужный раздел, перейдём в него командой chroot.

sudo chroot /mnt

И выполним восстановление grub:

sudo grub-install /dev/sdX

Где X -- это всё та же буква, что и выше. (у меня это буква "а")
После отработки команды восстановления должна появится в конце терминала надпись
Installation finished. No error reported.
Перезагружаемся и все должно заработать!
Проблемы при восстановлении...
Если после выполнения всех вышеуказанных действий продолжает загружаться Windows -- проверьте с правильного ли физического диска вы загружаетесь (в BIOS).
Если выдаёт:
chroot: cannot run command `/bin/bash': Exec format error
значит архитектура Live системы не совпадает с восстанавливаемой -- воспользуйтесь другим диском для восстановления.

P.S. ...хотел бы уточнить у знатоков-что это у меня за информация на скрине мол "Раздел 3 начинается не на границе физического сектора"? На работу это не влияет и появилось после замены старого харда на новый с полной переустановкой двух Линуксов (Минт и Убунту) и одной Вин 7.
Желаю добра!



Работаешь на Виндовс - работаешь на Америку! Всем добра!
Ответить | Древовидный
Открыть эту статью в виде дерева
|

Re: Восстановление загрузчика (с личной практики)

agafron.ypp@gmail.com
Забанить пользователя
СОДЕРЖАНИЕ УДАЛЕНО
Автор удалил это сообщение.
Ответить | Древовидный
Открыть эту статью в виде дерева
|

Re: Восстановление загрузчика (с личной практики)

strmaks
В ответ на это сообщение от Tauri
Основная причина данного поведения - несоответствие адресации логической и физической.
Это можно увидеть в вашем же скриншоте - "Размер сектора (логического/физического): 512 байт / 4096 байт"

Небольшой кусочек теории, физически жесткие диски выполняют операции с физическими секторами, а ОС оперирует логическими поверх которых разворачиваются блоки ФС. Когда вы читаете логический сектор, это приводит к трансляции его в физический и чтения этого сектора с диска.

Теперь приведу пример со своей инсталляции:
раздел ext4 -
sudo tune2fs -l /dev/sda6 | grep 'Block size'
Block size:               4096
т.е. 1 блок в ФС будет минимум 4кб

если партиция не выровнена к размеру физического сектора, то при логическом чтении блока из ФС, может читаться 2 физических блока (начало и конец блока ФС находятся в разных физических) т.е. пострадает производительность в ситуации когда требуется высокая интенсивность IO от диска.

Вопрос только в том насколько вывод команды fdisk реален и верен, сталкивался с тем что в некоторых случаях он может врать и выдавать не совсем верную информацию, в частности при работе с RAID контроллерами особенно дешевыми и сетевыми устройствами т.к. они могут некорректно экспортировать информацию о своем внутреннем устройстве.

Рекомендовал бы почитать про выравнивание разделов в интернетах плюс изучить вывод команды parted в режимах отображения поблочно, в байтах, в мегабайтах.