Монтируем диск из NAS, или как смонтировать RAID-раздел в Linux
Многие из нас сейчас активно используют такие устройства как NAS. Полезно, удобно, компактно. Иногда эти устройства используются даже в небольших конторах как файловые накопители. И иногда они ломаются. Недавно такое произошло у коллеги работающего на аутсорсе в одной пиар-компаний. Тут-то мы и познакомились получше с тем что находится внтури этих NAS. Как правило, работают они под linux и если в системе используется несколько дисков, то они объединены в RAID. В нашем случае это был RAID1, то есть зеркало. Проблема заключалась в том, что к устройству не было доступа через web и ssh. Сбрасывать через RESET было боязно потерять содержимое дисков. Поэтому было решено вытащить один из дисков из RAID и забэкапить его перед сбросом.
Казалось бы, что может быть проще — загрузиться с LiveCD Linux и смонтировать линуксовый диск? Вообще-то оно действительно просто. Но надо помнить что у наc RAID и потомe монтируется диск несколько иначе, чем обычно.
Итак как смонтировать диск RAID1 в Linux?
Мы будем использовать популярный дистрибутив Linux — Ubuntu.
1. После загрузки установим программу mdadm:
mount: неизвестный тип файловой системы ‘linux_raid_member’
У меня есть Suse Linux 12.1 и Я пытаюсь установить один диск RAID 1, чтобы изучить файлы в нем. Однако при монтаже:
Я начал читать, и многие советуют просто принудительно ввести тип filessystem
Может ли кто-нибудь дать некоторые рекомендации?
Я запускаю свои компьютеры на ESXI-сервере, и это виртуальный диск. Однако это не должно воспроизводиться, так как эти диски не используются никакими другими машинами.
1 ответ
Вы не должны монтировать его напрямую, используя mount . Сначала вам нужно запустить mdadm для сборки массива RAID. Такая команда должна сделать это:
Если он отказывается запускать массив, потому что он будет деградирован, вы можете использовать опцию —force . Предполагается, что у вас нет устройства /dev/md0 . В противном случае вам нужно изменить это имя.
Когда эта команда выполнена успешно, вы можете монтировать созданное устройство с помощью:
Linux_raid_member
Добрый день уважаемые знатоки Linux!
Есть сетевой накопитель WD MBLD (Debian (говорят в чём-то немного усечённый:)), 8TB — 2 диска по 4ТВ, RAID1).
Задача: скопировать файлы с одного винта (винт подключён как 2-ой винт на стационарный комп по SATA) из сетевого накопителя на компе с Ubuntu (12.04.3) — ДЛЯ ПРОВЕРКИ КОПИРОВАНИЯ ФАЙЛОВ НА СЛУЧАЙ СБОЯ СЕТЕВОГО НАКОПИТЕЛЯ 🙂
Через sudo blkid мой 2-ой винт виден как sdb1 Далее sudo mount /dev/sdb1 /mnt пишет
что мой 2-ой винт: Linux raid member (типа часть линукс массива типа 1 🙂 — всё логично )
Вопрос: как его примонтировать, чтобы я мог скопировать оттуда все файлы?
Погуглите про восстановление данных с RAID, должны найти опции команды mdadm по запуску RAID1 в дерградированном режиме (когда только 1 винт). Далее у вас появится md-устройство, его и монтируйте в read-only и копируйте файлы. Только сначала посмотрите по dmesg и /proc/partitons, что md-устройства нет, а то может Убунта уже сама стартовала RAID.
Я так понял Ubunta уже стартовала RAID
$ blkid /dev/sda1: LABEL=«In» UUID=«AA54DDF454DDC2ED» TYPE=«ntfs» /dev/sda5: LABEL=«In» UUID=«6280FB8780FB5FC9» TYPE=«ntfs» /dev/sda6: UUID=«c7c75cd3-e00e-455f-b12f-230f5cf99cd3» TYPE=«ext4»
/dev/sda7: UUID=«d6aee780-a8cd-462d-b010-9b21f972eab3» TYPE=«swap»
/dev/sda8: UUID=«bc021402-517b-4be8-bc35-1e3c7daf8daa» TYPE=«ext4»
/dev/sdb1: UUID=«594b3f30-1527-670a-b922-584f78066e30» TYPE=«linux_raid_member»
/dev/sdb2: UUID=«594b3f30-1527-670a-b922-584f78066e30» TYPE=«linux_raid_member»
/dev/sdb3: UUID=«f9c83da6-abab-66f3-6252-8ec573d5bfca» UUID_SUB=«71dfa972-59e5-d521-32fb-29bbffc1379c» LABEL=«MyBookLiveDuo:2» TYPE=«linux_raid_member»
/dev/sdb4: UUID=«88ee952e-ea02-53c4-5d8c-65d8d0b2e14a» UUID_SUB=«12cd3680-dddc-4c1c-6881-296060234a22» LABEL=«MyBookLiveDuo:3» TYPE=«linux_raid_member»
/dev/md127: UUID=«1f131153-ccde-45f0-99a6-4c62a29cad4d» TYPE=«ext4»
Можно подсказать как этот md127 примонтировать например в home?
Приведённой информации не достаточно, но судя по всему, md127 это последствия того, что драйвер dmraid принял винт /dev/sdb за fake-raid и попытался его активировать. Посмотрите, что в /proc/mdstat.
Если он действительно занят dmraid’ом, то сначала ″dmsetup remove_all″, потом ″mdadm —assemble —scan″ и в /proc/mdstat должны появиться записи об активных md-устройствах, которые можно монировать (желательно с опцией ″-o ro″).
Это содержание /proc/mdstat:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md126 : active (auto-read-only) raid1 sdb3[1] 500724 blocks super 1.0 [2/1] [_U]
md127 : active (auto-read-only) raid1 sdb4[2] 3902501752 blocks super 1.0 [2/1] [_U] unused devices:
Это озночает, что активировался fake-raid? (перед загрузкой Ubunta мне даёт загрузиться только с деградированном RAID)
Или md-устройства активны и готовы к монтированию?
Это содержание /proc/partitons:
major minor #blocks name
8 16 3907018584 sdb
8 20 3902501888 sdb4
9 127 3902501752 md127
9 126 500724 md126
Да нет, вроде как всё нормально активировалось, в read-only. Когда fake-raid, было бы в mdstat строка «blocks super external».
mount /dev/md126 /home
Или вместо home какой нужно каталог. Не знаю, почему там на винте 4 раздела, RAID стартовал только на sdb3 и sdb4. Возможно, что первых два служебные и не содержат нужные данных.
sudo fuseext2 -o ro -o sync_read -o nonempty /dev/md3 /home/alexandr/mbld2 (без sudo не монтировался)
Через mount мой md3 не захотел монтироваться (я переустанавливал рэйд — теперь он md3)
Мои данные находятся в shares
root@alexandr-p4:/home/alexandr/mbld2# ls -l
drwxrwxr-x 2 root alexandr 65536 янв. 1 1970 backup
drwxrwxrwx 10 root www-data 65536 нояб. 16 13:36 cache
drwx—— 2 root root 131072 янв. 1 1970 lost+found
drwxrwxr-x 10 root alexandr 65536 нояб. 5 22:07 shares
Если я меняю владельца root на alexandr через
$ sudo chown -R alexandr /home/alexandr/mbld2/shares
chown: изменение владельца «/home/alexandr/mbld2/shares/Public»: Файловая система доступна только для чтения
ls: невозможно получить доступ к mbld2: Отказано в доступе итого 48
-rw-r—r— 1 alexandr alexandr 8445 нояб. 18 23:00 examples.desktop
drwxrwxr-x 2 alexandr alexandr 4096 нояб. 19 00:44 mbld-new
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Видео
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Документы
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Загрузки
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Изображения
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Музыка
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Общедоступные
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Рабочий стол
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Шаблоны
На моей папке ? ? ? — чего это я не знаю)
Далее я могу зайти только через sudo su
root@alexandr-p4:/home/alexandr# ls -l
-rw-r—r— 1 alexandr alexandr 8445 нояб. 18 23:00 examples.desktop
drwxr-xr-x 6 root root 65536 сент. 23 14:48 mbld2
drwxrwxr-x 2 alexandr alexandr 4096 нояб. 19 00:44 mbld-new
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Видео
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Документы
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Загрузки
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Изображения
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Музыка
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Общедоступные
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Рабочий стол
drwxr-xr-x 2 alexandr alexandr 4096 нояб. 18 23:13 Шаблоны
root@alexandr-p4:/home/alexandr/mbld2# ls -l
drwxrwxr-x 2 root alexandr 65536 янв. 1 1970 backup
drwxrwxrwx 10 root www-data 65536 нояб. 16 13:36 cache
drwx—— 2 root root 131072 янв. 1 1970 lost+found
drwxrwxr-x 10 root alexandr 65536 нояб. 5 22:07 shares
root@alexandr-p4:/home/alexandr/mbld2/shares# ls -l
drwxrwxr-x 3 99 alexandr 65536 окт. 16 06:45 1
drwxrwxr-x 4 99 alexandr 65536 нояб. 10 23:23 DesktopD
drwxrwxr-x 3 root alexandr 65536 окт. 28 06:38 Miscellanea_mkv_1ab
drwxrwxr-x 3 99 alexandr 65536 нояб. 5 12:22 Public
drwxrwxr-x 6 99 alexandr 65536 окт. 27 19:33 SeaGate3TB
drwxrwxr-x 9 99 alexandr 65536 окт. 1 08:26 Soft
drwxrwxr-x 4 root alexandr 65536 окт. 27 10:58 Work
Вот такая ситуация, только через sudo su в mc я могу открыть мои шары, но mc не видит мои бэкапы под 30 гигов, вот поэтому и хотел в графическом интерфейсе открывать типа Наутилус.
Чего я делаю не так, можно подсказать?
Само собой разумеется, что mount должна выполняться от root’а, а так как в Ubuntu root спрятан, то через sudo. Хорошо, что нагуглили fuseext2, видимо ваш NAS создаёт файловую систему с большим размером блока (>4096 байт) и встроенный в ядро драйвер её не понимает. Раз смонтировалось, значит на RAID’е просто файловая система, без LVM.
В целом я не понял, что вы хотите. Исходно заявлялось желание скопировать данные, что вполне осуществимо через sudo. Теперь у вас возникло желаение модифицировать данные (запустив chown) на половинке raid’а. Зачем? Чтобы огрести проблем, когда вернёте диск на место и сетевой накопитель начнёт синхрноизировать содежимое RAID’а?
Либо копируйте под sudo, либо монтируя, раз уж используете fuseext2, укажите опцию ″-o allow_other″ или ″-o uid=X″ подставив вместо X id пользователя alexandr (файл /etc/passwd).
но mc не видит мои бэкапы под 30 гигов
Что значит «не видит»? Не может показать содержимое архивов или вобще показывает пустой каталог? Может нужные данные вобще на sdb4 (md127). Если проблемы с распаковкой содержимого файла, то скопируйте его и открывайте в наутилисе, а если mc не показывает файлы в каталоге, значит их и нет, наутилус не поможет.
Спасибо большое за внимание к моей проблеме )
[sudo] password for alexandr:Диск /dev/sda: 120.0 Гб, 120033041920 байт
255 головок, 63 секторов/треков, 14593 цилиндров, всего 234439535 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0x08050805
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 63 104856254 52428096 7 HPFS/NTFS/exFAT
/dev/sda2 104856316 204209642 49676663+ f W95 расшир. (LBA)
/dev/sda3 204210176 223739903 9764864 83 Linux
/dev/sda4 223739904 234438655 5349376 83 Linux
/dev/sda5 104856318 192490829 43817256 7 HPFS/NTFS/exFAT
/dev/sda6 192490893 204209642 5859375 82 Linux своп / Solaris
ВНИМАНИЕ: На ‘/dev/sdb’ обнаружена GPT (GUID Partition Table)! Утилита fdisk не поддерживаетGPT. Используйте GNU Parted.
Диск /dev/sdb: 4000.8 Гб, 4000787030016 байт
255 головок, 63 секторов/треков, 486401 цилиндров, всего 7814037168 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Идентификатор диска: 0x00000000
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 4294967295 2147483647+ ee GPT
Partition 1 does not start on physical sector boundary.
Диск /dev/md3: 3996.2 Гб, 3996161794048 байт
2 головок, 4 секторов/треков, 975625438 цилиндров, всего 7805003504 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Идентификатор диска: 0x00000000
На диске /dev/md3 отсутствует верная таблица разделов
Диск /dev/md2: 512 МБ, 512741376 байт
2 головок, 4 секторов/треков, 125181 цилиндров, всего 1001448 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Идентификатор диска: 0xe5e5e5e5
На диске /dev/md2 отсутствует верная таблица разделов
Пишет что 4096 размер, если я правильно понял — но он больше может и просто не видеть чем 4096 — поэтому и пишет так?
Наверно максимум я уже выжал из него — буду копироваться под рутом, а бэкапы хранить просто на переносном винте.(знатоки с моего NAS-форума тоже говорят что там нестандартный разме рблока ФС)
mc показывает например, что мой бэкап 2 гига, когда в винде он около 20, на другие бэкапы под 30 гигов тоже даёт неправильный размер.
PS: может глупый вопрос — если я поставлю Debian на комп (на моем NAS именно Debian), я увижу в «нормальном» виде свои данные?
Не знаю, зачем вы тут привели вывод fdisk’а, у вас ядро нормально видит разделы, и вы их показывали (/proc/partition). Размер блока файловой системы это не размер сектора(блока) жёсткого диска или ещё что-то, показываемое fdisk, это другой уровень абстракции.
Информацию про файловую систему можно узнать из вывода ″tune2fs -l /dev/md3″, там будет ″Block size″ и ещё много чего.
Перестановка операционной системы никак не поможет. Ограничение на размер блока файловой системы, поддерживаемым драйвером ядра (чтобы монтировалось через mount, а не через fuseext2) связанно с размером страницы ОЗУ, что интелы, что amd это 4 кбайт.
2 Гбайт это, похоже, ограничение fuseext2. Можно попробовать прочитать нужный файл через debugfs, пакет e2fsprogs. Запускаете его на нужный раздел ″sudo debugfs /dev/md3″. Если он нормально запустился то появится его приглашение ввода и можно давать различные комады. Для копирования файла вводите там:
Так у debugfs ещё есть разные команды, главное НЕ запускайте его с опцией ″-w″ и тогда он не будет ничего писать и не испортит файловую систему при неправильных командах.
mky спасибо ещё раз!
Размер блока файловой системы это не размер сектора(блока) жёсткого диска или ещё что-то, показываемое fdisk, это другой уровень абстракции.
теперь понял, что у файловой системы есть свой размер блока ))
буду вытаскивать (на аварийный случай) по Вашему совету.
Спасибо огромное за помощь!
Только лучше сейчас проверьте, что работает. Просто, у меня не на чем проверить, работает ли debugfs на больших блоках, есть только общие заверения из поиска гугла, что debugfs не завязано на драйвер в ядре и должно работать.
Да, вот вижу что размер блока 65536:
root@alexandr-p4:/home/alexandr# tune2fs -l /dev/md3
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name:
Last mounted on: /CacheVolume
Filesystem UUID: 1f131153-ccde-45f0-99a6-4c62a29cad4d
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: unsigned_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 60775680
Block count: 60976271
Reserved block count: 0
Free blocks: 12047428
Free inodes: 60489662
Fragment size: 65536 .
root@alexandr-p4:/home/alexandr# sudo debugfs /dev/md3
debugfs 1.42 (29-Nov-2011)
debugfs: dump /backup/home/alexandr/mbld2/shares/1/2.mkv /media/Iomega/copya
/backup/home/alexandr/mbld2/shares/1/2.mkv: File not found by ext2_lookup debugfs: dump /backup/home/alexandr/mbld2/shares/1/*2.mkv /media/Iomega/copya
/backup/home/alexandr/mbld2/shares/1/*2.mkv: File not found by ext2_lookup
debugfs: dump /backup/home/alexandr/mbld2/shares/1/«*2.mkv» /media/Iomega/copya
/backup/home/alexandr/mbld2/shares/1/*2.mkv: File not found by ext2_lookup
debugfs: dump /backup/home/alexandr/mbld2/shares/1/«2.mkv» /media/Iomega/copya
/backup/home/alexandr/mbld2/shares/1/2.mkv: File not found by ext2_lookup debugfs: dump /home/alexandr/mbld2/shares/1/«2.mkv» /media/Iomega/copya
/home/alexandr/mbld2/shares/1/2.mkv: File not found by ext2_lookup
debugfs: dump /home/alexandr/mbld2/shares/1/2.mkv /media/Iomega/copya
/home/alexandr/mbld2/shares/1/2.mkv: File not found by ext2_lookup
debugfs: dump /home/alexandr/mbld2/shares/1/*2.mkv /media/Iomega/copya
/home/alexandr/mbld2/shares/1/*2.mkv: File not found by ext2_lookup
debugfs: «dump /home/alexandr/mbld2/shares/1/*2.mkv /media/Iomega/copya»
debugfs: Unknown request «dump». Type «?» for a request list.
debugfs: dump /home/alexandr/mbld2/shares/1/*2.mkv /media/Iomega
/home/alexandr/mbld2/shares/1/*2.mkv: File not found by ext2_lookup
debugfs: dump /home/alexandr/mbld2/shares/1/*2.mkv /media/Iomega
/home/alexandr/mbld2/shares/1/*2.mkv: File not found by ext2_lookup
Прошу простить меня за эти портянки — не знаю как спойлер тут ставить ))
Короче, с debugfs я поигрался не в какую не хочет или я набираю не так))
debugfs работает с файловой системой напрямую, она не знает куда она смонтирована, её вобще не нужно, чтобы ФС была смонтирована. Но имена файлов задаются в этой ФС, а не относительно корневой файловой системы:
Форматированный текст нужно обрамлять тегами [code][/code] или [pre][/pre]. Там под формой ввода текста сообщения есть ссылка: Внимание: прочитайте описание разметки LORCODE . Ну и кнопка ″Предпросмотр″, чтобы наблюдать результаты применения тегов.
Кино под 6 гигов скачал махом, но я правда его положил не далеко )
На попытку скопировать образ из недр диска))) (конечно наверно папку с бэкапами перенесу ближе к корню) ответил:
root@alexandr-p4:/home/alexandr# sudo debugfs /dev/md3
debugfs 1.42 (29-Nov-2011)
debugfs: dump /Windows 7/«W7 SP1 DeskTop (Home) — 2013.10.26.tib» /media/External_1G_B/copya
dump: Usage: dump_inode [-p]
dump [-p] filespec out_file
Dump the contents of the inode filespec to the output file out_file. If the -p option is given set the owner, group and permissions information on out_file to match filespec.
Пока сходу не пойму чего ему надо )
Имя файлов без пробелов ему надо. Или указывать пробелы экранируя их слешами, или указывать не имя файла, а номер инода в угловых скобках:
mky доброе время суток!
Короче, я поступил так. Всё таки я переместил мои образы не так далеко + убрал пробелы и русские буквы )))
Всё скопировалось без вопросов, бэкап под 30 гигов, ушёл на ура )