Монтируем диск из NAS, или как смонтировать RAID-раздел в Linux
Многие из нас сейчас активно используют такие устройства как NAS. Полезно, удобно, компактно. Иногда эти устройства используются даже в небольших конторах как файловые накопители. И иногда они ломаются. Недавно такое произошло у коллеги работающего на аутсорсе в одной пиар-компаний. Тут-то мы и познакомились получше с тем что находится внтури этих NAS. Как правило, работают они под linux и если в системе используется несколько дисков, то они объединены в RAID. В нашем случае это был RAID1, то есть зеркало. Проблема заключалась в том, что к устройству не было доступа через web и ssh. Сбрасывать через RESET было боязно потерять содержимое дисков. Поэтому было решено вытащить один из дисков из RAID и забэкапить его перед сбросом.
Казалось бы, что может быть проще — загрузиться с LiveCD Linux и смонтировать линуксовый диск? Вообще-то оно действительно просто. Но надо помнить что у наc RAID и потомe монтируется диск несколько иначе, чем обычно.
Итак как смонтировать диск RAID1 в Linux?
Мы будем использовать популярный дистрибутив Linux — Ubuntu.
1. После загрузки установим программу mdadm:
Mount unknown filesystem type linux raid member
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto | Site FAQ | Sitemap | Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux — A Hands on Guide This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter. For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author’s experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own. Маленький блог скромного айтишника.Многие из нас сейчас активно используют такие устройства как NAS. Полезно, удобно, компактно. Иногда эти устройства используются даже в небольших конторах как файловые накопители. И иногда они ломаются. Недавно такое произошло у коллеги работающего на аутсорсе в одной пиар-компаний. Тут-то мы и познакомились получше с тем что находится внтури этих NAS. Как правило, работают они под linux и если в системе используется несколько дисков, то они объединены в RAID. В нашем случае это был RAID1, то есть зеркало. Проблема заключалась в том, что к устройству не было доступа через web и ssh. Сбрасывать через RESET было боязно потерять содержимое дисков. Поэтому было решено вытащить один из дисков из RAID и забэкапить его перед сбросом. Казалось бы, что может быть проще — загрузиться с LiveCD Linux и смонтировать линуксовый диск? Вообще-то оно действительно просто. Но надо помнить что у наc RAID и потомe монтируется диск несколько иначе, чем обычно. 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).
Что значит «не видит»? Не может показать содержимое архивов или вобще показывает пустой каталог? Может нужные данные вобще на 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 гигов, ушёл на ура ) |