?

Log in

No account? Create an account
 
 
03 August 2019 @ 03:33 pm
linux software raid 1 - mount data partition from external drive  
Есть диск когда-то бывший в raid1 массиве. Надо с него взять что-нибудь нужное:

сначала смотрим какому md девайсу соответсвует sd девайс:
[root@dell15 ~]# mdadm -D --scan -v
INACTIVE-ARRAY /dev/md127 num-devices=1 metadata=1.2 name=fs:3 UUID=9a43071f:5622e0a3:d00dd4b0:65d58b72
devices=/dev/sdb7
INACTIVE-ARRAY /dev/md126 num-devices=1 metadata=1.2 name=fs:0 UUID=f2fc3f8d:01e6fb1b:5dcb9e1f:f7901ed7
devices=/dev/sdb1
INACTIVE-ARRAY /dev/md125 num-devices=1 metadata=1.2 name=fs:1 UUID=43c0dc4d:e9783efd:2154fce0:f762f550
devices=/dev/sdb5
INACTIVE-ARRAY /dev/md124 num-devices=1 metadata=1.2 name=fs:4 UUID=c9739bf3:198ad87a:5a2e05d5:59d40d29
devices=/dev/sdb8
INACTIVE-ARRAY /dev/md123 num-devices=1 metadata=1.2 name=fs:5 UUID=35967ad4:d4a6bb24:92cf519e:9de20081
devices=/dev/sdb9
INACTIVE-ARRAY /dev/md122 num-devices=1 metadata=1.2 name=fs:2 UUID=63a1a323:00a039ca:de76bcb3:c6968e3c
devices=/dev/sdb6
[root@dell15 ~]#

пробуем с опцией --force сделать assemble, затем используем опцию --run чтобы запустить faulty array:

[root@dell15 ~]# mdadm --run /dev/md125
mdadm: started array /dev/md/fs:1
[root@dell15 ~]#
Пробуем смонтировать:
[root@dell15 ~]# mkdir /mnt/fs1;mount /dev/md/fs\:1 /mnt/fs1

mount: /mnt/fs1: unknown filesystem type 'swap'.
[root@dell15 ~]#
удача, теперь знаем что на sdb5 лежал swap раздел.Он нам не нужен, но mount уже ругается осмысленней. :)

на самом деле если у вас сработал автодетект, то assemble делать необязательно - можно сразу пробовать run:
Устройства в /dev для raid при сработавшем автодетекте создаются автоматически (но каждый раз указывают на разные дисковые устройства, чтобы узнать, что у нас есть, достаточно ls.
[root@dell15 ~]# ls /dev/md12*
/dev/md122 /dev/md123 /dev/md124 /dev/md125 /dev/md126 /dev/md127
[root@dell15 ~]#

Поскольку подцеплял диск по usb, то он периодически отваливался и для повторного автодетекта бывало нужно перекинуть usb-sata плату в другой порт.

[root@dell15 ~]# mdadm --run /dev/md126
mdadm: started array /dev/md/fs:0
[root@dell15 ~]# mkdir /mnt/fs0;mount /dev/md/fs\:0 /mnt/fs0
[root@dell15 ~]# ls /mnt/fs0
config-2.6.32-5-amd64 grub initrd.img-3.2.0-4-amd64 System.map-2.6.32-5-amd64 vmlinuz-2.6.32-5-amd64
config-3.2.0-4-amd64 initrd.img-2.6.32-5-amd64 lost+found System.map-3.2.0-4-amd64 vmlinuz-3.2.0-4-amd64
[root@dell15 ~]#

Но не тут-то было. Следующий mdadm --run на 40 гиговом разделе при монтировании дал опять то же содержимое /boot . Так что не всё так просто (если только я не выкинул 40 гиг на /boot когда-то :)) ). Однако если передёрнуть винт (размонтировать всё с винта, отключить винт, остановить mdadm --stop всё что есть в -D --scan), то исользуя только --run в следующий раз получаем желаемое:

[root@dell15 ~]# mdadm --run /dev/md123
mdadm: started array /dev/md/fs:3
[root@dell15 ~]#
[root@dell15 ~]# mount /dev/md/fs:3 /mnt/fs/
[root@dell15 ~]# ls /mnt/fs
backup boot data-olli etc initrd.img lib lib64 media opt root sbin srv tmp var vmlinuz.old
bin data dev home initrd.img.old lib32 lost+found mnt proc run selinux sys usr vmlinuz
[root@dell15 ~]#

Ура!