Войти  Регистрация

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

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

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

Tauri
28 сообщения
Моё почтение! Уже будучи пользователем Линукса более полутора лет хотел бы поделиться своим (конечно не своим) способом восстановления загрузчика 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
6 сообщения
В ответ на это сообщение от Tauri
Основная причина данного поведения - несоответствие адресации логической и физической.
Это можно увидеть в вашем же скриншоте - "Размер сектора (логического/физического): 512 байт / 4096 байт"

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

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

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

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

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