LINUX.ORG.RU
ФорумAdmin

raid1 mdadm - установка загрузщика

 , ,


0

1

Доброго времени суток. Сервер с програмным raid1 достался по наследству. 1 диск накрылся, со второго система не загружается. Предположил что нет загрузчика. Запустился с liveCD. sudo grub-install /dev/sda1 - выдает ошибку filed to get canonical path гугление подсказало что нужно примонтировать массив или раздел mount -t ext4 /dev/sda1 /mnt - выдает ошибку wrong fs type bed option bed superblock c md0 то-же самое. Массив определялся _U. Удалял sda1 из md0 - то-же не помогло.

Не знаю, этот файл дистрибутивоспецифичный, или нет, то в ALT Linux в /etc/sysconfig/grub2 написано:

# Automaticaly update grub on device(s)
# NB: don't put /dev/mdX there but rather '/dev/sda /dev/sdb '!
GRUB_AUTOUPDATE_DEVICE='/dev/sda '
То есть никаких sda1. В Lilo я, напротив, использую /dev/md0, и md с Grub у меня нет, честно говоря.

Вот про восстановление загрузчика в принципе: https://www.altlinux.org/Восстановление_загрузочной_записи
Это не дистрибутивоспецифично в плане вариантов расположения загрузчика.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 2)
Ответ на: комментарий от Einstok_Fair

Раз запустился - надо примонтировать диск, скачать с него данные и с grub при этом возиться не нужно.

Так задача с оставшегося загрузиться же?

AS ★★★★★ ()

Удалял sda1 из md0 - то-же не помогло.

Так. А sda1 тут был оставшийся? Как бы это не было фатально для него. Опыт с mdadm у меня небольшой, но по логике должно быть так. Хотя mdadm просто так диск удалить дать не должен, без пометки, как сбойный...

AS ★★★★★ ()

sudo grub-install /dev/sda1 - выдает ошибку filed to get canonical path

sda тут может быть флешка кстати.

В общем попробуй загрузиться с https://www.altlinux.org/Rescue (что там у тебя за дистрибутив - не важно), потом запусти mount-system и посмотри, что напишет. Если всё смонтирует, то chroot /mnt/system1 (про это напишет) и занимайся своей системой.

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

флешка sdb, sda нужный hdd, sda1 раздел с системой, загружаюсь c флешки liveCD ubuntu lsblk все разделы показывает, попытка примонтировать mount -t ext4 /dev/sda1 /mnt - выдает ошибку wrong fs type bed option bed superblock. Думаю с RescueLiveCD будет все то-же. на разделах не определяется файловая система я так понимаю. там ext4 даже какой-то командой показывало. цепляю диск к винде acronis показывает разделы как не отформатированные.

negoduyka ()

Для начала массив восстанови. То есть воткни туда диск новый. И засинкай. Чтобы UU было. А загрузчик ставь на оба диска - и на sda, и на sdb. Чтобы можно было загрузиться с живого.

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

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

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

Для начала массив восстанови. То есть воткни туда диск новый.

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

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

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

Никогда не надо верить советам с форума, если предлагается сделать в чём-то деструктивное действие, и если это не инструкция проверенная. Да даже если и инструкция, но есть сомнения. Если делать, то делать на копии того, с чем это делаешь. Какой там набор команд был при удалении?

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 3)
Ответ на: комментарий от negoduyka

Но попробовать стоит, надеюсь хуже не будет.

Когда ты добавляешь диск в массив, предполагается, что он новый. Вопрос - как ты теперь туда будешь добавлять оставшийся sda1? Но может быть есть опция сказать mdadm, что он старый, надо опции пересмотреть. mdadm -E /dev/sda1 сейас что-то вменяемое показывает?

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

подключил второй диск. cоздал через cfdisk идентичные разделы, sfdisk -d /dev/sda | sfdisk /dev/sdb добавил раздел в RAID1 массив: mdadm --manage /dev/md0 --add /dev/sdb1 Жду синхронизации массива.

mdadm -E /dev/sda1 - да показывает raid level raid devices и кучу всего скопировать жаль не могу пока

negoduyka ()

В случае legacy первичный загрузчик ты ставишь в mbr, которое в самом начале диска И НЕ РАЗДЕЛ. Не sda1, а просто sda. Первичный загрузчик в mbr, который запускает следующую стадию из /boot, которое загружает остальное. Если я всё верно помню.

https://www.ibm.com/developerworks/ru/library/l-linuxboot/

targitaj ★★★★★ ()
Последнее исправление: targitaj (всего исправлений: 1)
Ответ на: комментарий от targitaj

root@ubuntu-gnome:/# mdadm -E /dev/sda1 /dev/sda1: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : ed728fa4:35161733:eb22a755:fbbc589e Name : maximus:0 Creation Time : Fri Mar 4 09:56:05 2016 Raid Level : raid1 Raid Devices : 2

Avail Dev Size : 136585216 (65.13 GiB 69.93 GB) Array Size : 68292480 (65.13 GiB 69.93 GB) Used Dev Size : 136584960 (65.13 GiB 69.93 GB) Data Offset : 131072 sectors Super Offset : 8 sectors Unused Space : before=130992 sectors, after=256 sectors State : clean Device UUID : 401c3bb3:8b727792:3a21ad04:9a006071

Update Time : Wed Mar 18 11:28:38 2020
   Checksum : 99d8947b - correct
     Events : 373726

Device Role : Active device 0 Array State : A. (‘A’ == active, ‘.’ == missing, ‘R’ == replacing) root@ubuntu-gnome:/# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb13 sda1[2] 68292480 blocks super 1.2 [2/1] [U_]

unused devices: root@ubuntu-gnome:/# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 298,1G 0 disk
├─sda1 8:1 0 65,2G 0 part
│ └─md0 9:0 0 65,1G 0 raid1 │ ├─md0p1 259:2 0 3,7G 0 md
│ └─md0p2 259:3 0 61,4G 0 md
├─sda2 8:2 0 3,7G 0 part
└─sda3 8:3 0 229,2G 0 part
sdb 8:16 0 298,1G 0 disk
├─sdb1 8:17 0 65,2G 0 part
│ └─md0 9:0 0 65,1G 0 raid1 │ ├─md0p1 259:2 0 3,7G 0 md
│ └─md0p2 259:3 0 61,4G 0 md
├─sdb2 8:18 0 3,7G 0 part
└─sdb3 8:19 0 229,2G 0 part
sdc 8:32 1 29,3G 0 disk
└─sdc4 8:36 1 29,3G 0 part /cdrom loop0 7:0 0 1,2G 1 loop /rofs root@ubuntu-gnome:/# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb13 sda1[2] 68292480 blocks super 1.2 [2/1] [U_]

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

mdadm -E /dev/sda1 - да показывает raid level raid devices и кучу всего скопировать жаль не могу пока

То есть не похоже, что удаление из массива всё порушило? Хорошо тогда.

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

├─sda1 8:1 0 65,2G 0 part
│ └─md0 9:0 0 65,1G 0 raid1 │ ├─md0p1 259:2 0 3,7G 0 md
│ └─md0p2 259:3 0 61,4G 0 md

А вот и причина, почему у тебя /dev/sda1 не смонтировался. Он у тебя сам на разделы побит, надо md0p1 и md0p2 монтировать. Хотя кто-то из них и свопом может быть.

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

отформатировать sdb?

Не торопись. Раз он добавился, по идее восстановление должно пойти. Но в /proc/mdstat это должно быть видно. В общем пока смонтируй куда-нибудь md0p1 и md0p2 и вытащи данные.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от turtle_bazon

да это я понял. но когда пытался изначально ставить grub пробовал и по sda не проходило одна и таже ошибка была. md0p1 - своп. md0p2 если тоже пробовал сейчас, ошибка filed to get canonical path of /cow

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

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

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

да sda1 оставшийся. ну вычитал такой совет на форумах, мол для raid1 это не страшно можно удалить с массива и примонтировать как обычный диск.

Это не совсем так. Есть разные версии рейда и в большинстве есть служебная информация в начале тома, поэтому просто так примонтировать нельзя. Есть один формат рейда, где метаинформация в конце, а в начале фс как при обычной разметке, но это не твой случай.

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

Вобщем скопировал с помощью ddrescue инфу и попытался всетаки загрузщик накатить, но не выходит. Нашел инфу что при установке с live cd там доп присядания нужны но логику пока не осилил. А делать то что не понимаю боязно. Ниже текст из инструкции:

sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc

Следующая команда не обязательна, она лишь копирует resolv.conf

sudo cp /etc/resolv.conf /mnt/etc/resolv.conf Теперь делаем chroot в диск, который мы смонтировали sudo chroot /mnt Теперь ставим Grub2 при помощи следующей команды: grub-install /dev/sda

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

вобщем сделал по этой инструкции - загрузщик встал. При запуске выдал ошибки чтения записи именно sda при синхронизации на sdb, далше не пошел. Снял второй диск sdb, с одним запустился. Думаю как это сейчас проще на живом диске поднять, видимо придется с бэкапа созданного ddrescue разворачивать, там было правда 2 ошибки на 8мб, но шансы есть думаю.

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

Теперь делаем chroot в диск, который мы смонтировали sudo chroot /mnt Теперь ставим Grub2 при помощи следующей команды: grub-install /dev/sda

В общем примерно правильно: ты собираешь в произвольную точку монтирования свою файловую систему и chroot-ишся туда. После этого ты как бы получаешь ту систему, которую чинишь и там делаешь установку загрузчика. Я тебе в первом же сообщении давал ссылку на «Восстановление_загрузочной_записи», там про это же самое написано в подразделе «Подготовка chroot».

AS ★★★★★ ()