У вашому масиві Synology SHR-1 вийшли з ладу два диски. DSM повідомляє, що пул сховища має стан Crashed і що дані неможливо відновити. Відновлення даних у SHR-1 після відмови двох дисків — тема цієї статті, і ситуація є значно складнішою, ніж це може здаватися з повідомлення DSM. Чи підлягають ваші дані відновленню, залежить не лише від кількості несправних дисків, а й від того, як саме вони вийшли з ладу та в якому стані перебувають диски, що залишилися.

Спочатку визначте свою ситуацію
Перш ніж читати далі, скористайтеся цією таблицею, щоб знайти свій конкретний сценарій і перейти безпосередньо до відповідного розділу:
| Що ви спостерігаєте | Ймовірна ситуація | Ймовірність відновлення | Перейдіть до |
|---|---|---|---|
| Обидва диски відображаються в ОС, суперблоки читаються | Логічний збій — диски фізично справні | Можливо | Рівень 1 → Рівень 2 |
| Один диск читається, інший не виявляється | Один логічний + один фізичний збій | Частково | Рівень 2 → Рівень 3 |
| Другий диск вийшов з ладу під час відновлення після першого | Класичний подвійний збій — імовірна часткова втрата даних | Частково | Рівень 2 |
| Один або обидва диски клацають, скриплять, не виявляються | Фізичний збій — головки або пластини | Потрібна лабораторія | Рівень 3 |
Чому дві відмови математично ламають SHR-1
SHR-1 використовує один набір парності — за своєю суттю це еквівалент RAID 5 з погляду відмовостійкості. Для кожного stripe у масиві один диск зберігає XOR-парність інших. Коли виходить з ладу один диск, будь-який відсутній блок даних можна перерахувати: беруть блок парності та виконують XOR з усіма вцілілими блоками даних, і відсутнє значення відновлюється. Це працює, тому що є одна невідома і одне рівняння.
Якщо виходять з ладу два диски, для кожного stripe маємо вже дві невідомі, але все ще лише одне рівняння парності. Математика не має розв’язку. Жодне програмне забезпечення, незалежно від того, як його рекламують, не може відновити два незалежно невідомі значення з одного XOR-зв’язку. Це не обмеження конкретного інструмента — це властивість самої схеми парності.
Що може зробити програмне забезпечення — це відновити дані зі stripe’ів, у яких бере участь лише один із двох несправних дисків. Якщо ваші файли зберігаються на stripe’ах, які не зачіпають обидва несправні диски, їх можна відновити. Файли, що охоплюють stripe’и з обома втраченими дисками, — ні. Частка даних, які можна відновити, залежить від розміру та розташування несправних дисків у масиві, тому часткове відновлення часто можливе навіть тоді, коли повне — ні.
SHR-2 зберігає два незалежні набори парності для кожного stripe — аналогічно RAID 6 — і витримує будь-які дві одночасні відмови дисків без втрати даних. Однак SHR-2 не є невразливим до цього сценарію: три одночасні відмови ламають його математику парності так само, як дві відмови ламають SHR-1. Якщо ви використовуєте SHR-2 і втратили три диски, нижче наведена логіка застосовується так само. Для порівняння стійкості SHR-1 і SHR-2 на практиці дивіться нашу статтю про відновлення SHR/SHR-2 після відмови обладнання Synology.
Важливо, як саме вийшли з ладу обидва накопичувачі
Не всі подвійні відмови однакові. Послідовність і характер збоїв визначають, яке відновлення можливе:
Одночасний збій — подія живлення або контролер
Обидва диски перестали відповідати в один і той самий момент. Імовірно, дані на кожному диску фізично неушкоджені — масив просто втратив кворум. Це найвідновлюваніший варіант подвійного збою, оскільки на даних жодного з дисків не було часткового перезапису.
Другий диск вийшов з ладу під час відновлення
Перший диск вийшов з ладу, масив перейшов у деградований стан, було розпочато відновлення — і другий диск вийшов з ладу на півдорозі. Нова парність записувалася на диск-заміщення саме тоді, коли другий оригінальний диск відмовив. Смуги, які було відновлено до другої відмови, залишаються неушкодженими; смуги, які відновлювалися в момент другої відмови, пошкоджені. Часткове відновлення зазвичай можливе.
Перший диск вийшов з ладу давно, і це залишилося непоміченим
Масив тривалий час працював у деградованому режимі — без резервування — а потім вийшов з ладу другий диск. Якщо перший збій не було виявлено, за цей час могли відбутися додаткові записи до деградованих смуг. Імовірність відновлення повністю залежить від фізичного стану другого диска, що вийшов з ладу. Дивіться нашу статтю про розпізнавання ранніх ознак відмови жорсткого диска, щоб виявити це раніше.
Оцініть фізичний стан кожного диска
Перш ніж переходити до будь-яких дій із програмним забезпеченням, визначте, чи є диски фізично читабельними. Коректно вимкніть NAS, якщо він усе ще працює, — не виконуйте примусове перезавантаження і не вставляйте диск для заміни, оскільки це змусить DSM спробувати ще одну перебудову. Під’єднуйте кожен диск окремо до машини для відновлення.
Якщо будь-який диск видає чутні клацання, скрегіт або неодноразово безуспішно намагається розкрутитися — негайно вимкніть його та не намагайтеся читати далі. Кожен цикл запуску диска з пошкодженими головками збільшує пошкодження пластин. Перейдіть одразу до Рівня 3.
Для дисків, що тихо вмикаються, виконайте mdadm --examine для кожного розділу пристрою:
mdadm --examine /dev/sdb3 Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 4b2f8e1a:7c3d9f02:1a4b8c3d:9e2f7b01 Name : DiskStation:2 Creation Time : Fri Mar 10 14:22:31 2023 Raid Level : raid5 Raid Devices : 3 Avail Dev Size : 7813959680 Array Size : 15627862016 Used Dev Size : 7813931008 Data Offset : 2048 sectors Super Offset : 8 sectors Unused Space : before=1968 sectors, after=0 sectors State : clean, degraded Device UUID : 9d3f1c2a:4e8b7f03:2c1d9e4b:7a3f8c01 Update Time : Mon Jun 2 09:14:22 2025 Bad Block Log : 512 entries available at offset 16 sectors Checksum : 3f8a1b2c - correct Events : 247
Зверніть увагу на три речі: UUID масиву має збігатися на всіх дисках — якщо це не так, диск належить до іншого масиву або його суперблок пошкоджений. Лічильник Events має бути подібним на всіх членах масиву — значне розходження вказує, що один диск пропустив суттєву кількість записів. Поле State покаже clean, degraded на диску, який був частиною масиву, що втратив один із членів.
Також на цьому етапі відкрийте вбудований монітор S.M.A.R.T. у RS RAID Retrieve. Показники Reallocated Sector Count і Pending Sectors на диску, що зберігся, мають значення: диск із накопиченням bad-секторів під час уже деградованого стану міг спричинити тихі помилки читання, які вплинули на цілісність даних ще до того, як сталася друга відмова. Для довідки щодо інтерпретації даних S.M.A.R.T. див. нашу статтю про ознаки виходу жорсткого диска з ладу.
Три рівні відновлення
Використовуйте цей шлях лише тоді, коли mdadm --examine повертає дійсні суперблоки з однаковими UUID на всіх дисках. Підхід через термінал дає вам прямий контроль над кожним кроком, але має жорсткі обмеження: він вимагає, щоб усі диски фізично були підключені та читалися, не має резервного варіанту, якщо суперблоки пошкоджено, і не може заздалегідь визначити, які файли є пошкодженими. Перед виконанням будь-яких команд нижче створіть образ кожного диска за допомогою ddrescue — працюйте виключно з образами.
Крок 1 — Спочатку створіть образ кожного диска
# Встановіть ddrescue, якщо його ще немає apt-get install -y gddrescue # Створіть образ кожного диска в окремий файл — виконайте для кожного учасника масиву ddrescue -d -r3 /dev/sdb /mnt/images/sdb.img /mnt/images/sdb.log ddrescue -d -r3 /dev/sdc /mnt/images/sdc.img /mnt/images/sdc.log ddrescue -d -r3 /dev/sdd /mnt/images/sdd.img /mnt/images/sdd.log
Прапорець -r3 вказує ddrescue повторно намагатися зчитати несправні сектори тричі, перш ніж позначити їх як невдалі. Файл .log дає змогу відновити процес створення образу, якщо його буде перервано. Не пропускайте цей крок — диск із прихованими пошкодженими секторами ще більше деградує під час тривалого читання, необхідного для відновлення масиву.
Крок 2 — Перевірте superblock на всіх учасниках масиву
# Запустіть для кожного образу — переконайтеся, що UUID і Events збігаються mdadm --examine /mnt/images/sdb.img mdadm --examine /mnt/images/sdc.img mdadm --examine /mnt/images/sdd.img
Перед продовженням переконайтеся в трьох речах. Array UUID має бути однаковим для всіх образів — якщо він не збігається, це означає, що диск належить до іншого масиву або його superblock пошкоджено. Лічильник Events має бути приблизно однаковим для всіх учасників — суттєва різниця в сотні чи тисячі означає, що один диск пропустив значну послідовність записів. Значення Raid Devices має відповідати очікуваній кількості учасників.
Крок 3 — Примусове складання з файлів образів
# Tell the kernel to treat image files as block devices losetup /dev/loop0 /mnt/images/sdb.img losetup /dev/loop1 /mnt/images/sdc.img losetup /dev/loop2 /mnt/images/sdd.img # Force assembly — specify the data partitions, not the whole device mdadm --assemble --force /dev/md0 /dev/loop0p3 /dev/loop1p3 /dev/loop2p3 # Check assembly result cat /proc/mdstat mdadm --detail /dev/md0
--force збирає масив навіть без достатньої кількості учасників для узгодженого стану. У результаті масив буде деградованим. Смуги, у яких були задіяні обидва несправні диски, містять некоректні дані, відновлені за паритетом, — файли в цих смугах будуть пошкодженими або матимуть нульовий розмір під час копіювання. Файли в смугах, які торкнулися лише одного несправного диска, залишаються цілими та доступними для читання. Ззовні неможливо визначити, до якої з цих категорій належить конкретний файл, перш ніж спробувати його скопіювати.
Крок 4 — Активуйте LVM і змонтуйте у режимі лише для читання
# Активуйте групу томів LVM на зібраному масиві pvscan vgchange -ay # Виведіть список логічних томів, щоб знайти правильний шлях до пристрою lvs # Монтуйте лише для читання — ніколи не монтуйте rw на пошкодженому масиві mount /dev/vg1/volume_1 /mnt/data -o ro
Завжди монтуйте з параметром -o ro. Запис на примусово зібраний масив у такому стані призведе до поширення пошкоджень на ті смуги, які ще залишалися неушкодженими. Після монтування перевірте структуру каталогів і розміри файлів перед початком будь-якого копіювання. Пошкоджені файли проявляються як помилки читання, помилки введення-виведення або файли нульового розміру під час копіювання — попередніх ознак немає.
Крок 5 — Копіювання з обробкою помилок
# Використовуйте rsync із журналюванням помилок — пропускає файли, які неможливо прочитати, замість зупинки rsync -av --ignore-errors /mnt/data/ /mnt/destination/ 2>&1 | tee /mnt/rsync.log # Перегляньте, що було пропущено grep -i "error|failed|cannot" /mnt/rsync.log
Звичайний cp зупиняється на першій помилці читання. rsync --ignore-errors записує збій у журнал і продовжує роботу з наступним файлом, максимально збільшуючи загальний обсяг відновлених даних. Після завершення перегляньте журнал, щоб визначити, які файли не вдалося скопіювати — це ті, що потрапили в смуги, які охоплювали обидва несправні диски.
Коли слід зупинитися та перейти до Рівня 2:
mdadm --examine показує невідповідність UUID між дисками; збирання з --force завершується помилкою або створює масив inactive у /proc/mdstat; під час активації LVM не знаходиться жодної групи томів; файлову систему вдається змонтувати, але в ній відображається порожнє або пошкоджене дерево каталогів. Будь-яка з цих ознак означає, що суперблок або метадані LVM пошкоджені занадто сильно для ручного відновлення — у таких випадках допомагає RAID Constructor у RS RAID Retrieve.
RS RAID Retrieve обробляє весь ланцюжок — аналіз S.M.A.R.T., створення образів дисків, реконструкцію масиву, активацію LVM і доступ до файлової системи — в одному застосунку для Windows, Linux або macOS. Він підтримує два окремі шляхи реконструкції залежно від стану суперблоків mdadm.
Оцінка S.M.A.R.T. — перед будь-якою операцією читання
Підключіть усі накопичувачі до машини відновлення та відкрийте вбудований монітор S.M.A.R.T. перед початком сканування. У цій ситуації найважливішими є такі атрибути: Reallocated Sector Count (ID 05), Current Pending Sector Count (ID C5) та Uncorrectable Sector Count (ID C6). Ненульові значення будь-якого з них — особливо на дисках, які виглядають як «здорові» вцілілі — вказують на сектори, що вже почали виходити з ладу під час періоду деградації до відмови другого диска. Диск, що вижив, але має підвищену кількість очікуючих секторів, може видавати помилки читання на певному етапі багатогодинного сканування для відновлення.
Створення образу диска — захистіть оригінали від навантаження під час сканування
Для будь-якого диска з підвищеними значеннями S.M.A.R.T. використовуйте вбудовану функцію створення образу в RS RAID Retrieve, щоб створити образ на рівні секторів перед скануванням відновлення. Засіб створення образу виконує кілька проходів по проблемних секторах, фіксує нечитаємi області за допомогою карти секторів і створює повний файл образу, що відображає найкраще можливе зчитування цього диска. Усі подальші етапи — реконструкція масиву, активація LVM, сканування файлової системи — виконуються щодо статичного файлу образу, а не щодо фізичного диска. Це запобігає подальшому погіршенню стану диска під час інтенсивного читання під час повного сканування масиву, яке в конфігурації SHR на кілька терабайтів може тривати кілька годин.
Автоматичне відновлення масиву — коли суперблоки цілі
RS RAID Retrieve сканує всі підключені диски та образи на наявність сигнатур суперблоків mdadm. Якщо сигнатуру знайдено, програма зчитує UUID масиву, рівень RAID, ролі дисків-членів, розмір блоку смуги та лічильники подій для всіх учасників. Після цього вона відновлює топологію тому SHR — масив mdadm → фізичний том LVM → група томів → логічний том → файлова система Btrfs або ext4 — без потреби у справному кворумі та без запису будь-яких даних на вихідні диски. У разі подвійного збою, коли обидва диски фізично читаються, а суперблоки не пошкоджені, цей шлях зазвичай не потребує ручного введення.
Відновлення виконується в деградованому режимі: смуги, у яких брали участь обидва несправні диски, не можна відновити з парності, тому відповідні файли позначаються як недоступні. Смуги, у яких брав участь лише один із двох несправних дисків, відновлюються з даних доступного учасника та парності — такі файли можна повністю відновити. Програма позначає недоступні файли в дереві каталогів ще до етапу копіювання, щоб ви могли оцінити обсяг відновлення перед вибором цільового носія.
Конструктор RAID — коли метадані superblock пошкоджено
Якщо автоматичне визначення не дає результату — через те, що superblock частково перезаписано, пошкоджено подією прошивки або він відсутній через збій диска, який був частково записаний під час відновлення, — перейдіть до RAID Constructor. Цей режим дає змогу вручну задати всі параметри масиву, повністю обійшовши superblock.
Спочатку визначте зміщення файлової системи за допомогою вбудованого HEX-редактора. Відкрийте кожен диск або образ у HEX-редакторі та знайдіть ASCII-маркер LABLEONE. У конфігураціях SHR і SHR-2 цей рядок позначає початок області даних тому. Сектор, що безпосередньо передує сектору LABLEONE, — він буде заповнений нулями — є сектором зміщення. Запишіть його номер: саме це значення потрібно ввести як параметр Offset у RAID Constructor.
У RAID Constructor введіть такі параметри:
| Параметр | Значення для SHR-1 | Значення для SHR-2 |
|---|---|---|
| Тип RAID | RAID 5 | RAID 6 / Left synchronous (P+Q) |
| Розмір блоку | 64 KB | 64 KB |
| Байтів на сектор | 512 | 512 |
| Порядок дисків | Відповідає початковій послідовності відсіків NAS — спочатку відсік 1 | |
| Зміщення | Номер сектора, отриманий під час пошуку LABLEONE (для кожного диска) | |
Якщо початковий порядок дисків невідомий, визначте його методом перебору: додавайте диски до списку Selected Disks у різній послідовності та після кожної зміни перевіряйте дерево файлової системи, яке було відновлено. Правильний порядок дає впізнавану структуру каталогів; неправильний — сміття або порожнє дерево. Значення offset потрібно задавати окремо для кожного фізичного диска або образу — воно може відрізнятися між учасниками, якщо в оригінальній конфігурації SHR диски мали різну ємність.
Якщо один із несправних дисків неможливо підключити взагалі — він механічно несправний або не визначається, — використайте Add empty disk, щоб вставити заповнювач у потрібну позицію списку дисків. RS RAID Retrieve сприймає цей заповнювач як повністю недоступний для читання учасник: смуги, у формуванні яких цей диск брав участь, відновлюються з парності за допомогою інших учасників (з відновленням даних із цих смуг), а смуги, для яких також потрібен внесок парності від заповнювача, позначаються як невідновлювані. Це максимальний можливий рівень відновлення для конфігурації з одним фізично недоступним диском.
Сканування файлової системи та вибіркове відновлення файлів
Після відтворення масиву — автоматично або через RAID Constructor — RS RAID Retrieve сканує файлову систему Btrfs або ext4 на логічному томі. Під час сканування програма обходить дерево файлової системи, визначає неушкоджені та пошкоджені ділянки й формує повний список каталогів. Файли та папки, чиї блоки даних перетинаються з невідновлюваними смугами, позначаються ще до початку копіювання — без потреби в пробному копіюванні, щоб з’ясувати, що саме доступно.
Виберіть файли й папки для відновлення, вкажіть розташування на окремому диску з достатнім вільним місцем і запустіть копіювання. Вихідні диски та образи протягом усієї операції доступні лише для читання. Докладніше про рівень LVM між масивом mdadm і файловою системою читайте в нашій статті про структуру та роботу LVM.
Програмне відновлення — на будь-якому рівні — залежить від того, чи здатні головки читання/запису диска передавати дані секторів на контролер хоста. Якщо блок головок механічно пошкоджено, актуатор голосової котушки заклинило або вийшов з ладу підшипник шпинделя, диск не може виконувати запити на читання незалежно від налаштувань програмного забезпечення. У лабораторії блок головок замінюють у чистому приміщенні (ISO Class 5 або кращому), виконують юстування головок під конкретний пластинчатий носій і використовують інструменти на рівні прошивки, щоб витягти дані секторів із ділянок, які власна електроніка диска відмовляється читати.
Результатом роботи лабораторії є набір образів на рівні секторів — по одному для кожного диска. Ці образи містять найкраще можливе зчитування поверхні кожного диска, включно із секторами, відновленими з фізично пошкоджених зон, які за нормальних умов спричиняють помилки введення-виведення. Після отримання ці образи використовуються безпосередньо в RS RAID Retrieve: RAID Constructor зчитує супершаблони (або застосовує метод зміщення LABLEONE, якщо супершаблони пошкоджені), відтворює топологію масиву SHR і переходить до сканування файлової системи та відновлення так само, як описано на Рівні 2.
Обмеження подвійної відмови для паритету застосовується до лабораторних образів так само, як і до фізично підключених дисків — смуги, що містять обидва несправні елементи, залишаються математично невідновлюваними незалежно від того, наскільки якісно було витягнуто дані секторів. Перевага лабораторії полягає в доступі до секторів, які програмні інструменти на живому деградованому диску пропустили б через помилки читання, що може суттєво збільшити частку файлів, які можна відновити.
Щоб отримати ширший огляд того, коли потрібне професійне відновлення та що саме включає цей процес, дивіться нашу статтю про відновлення даних із несправних жорстких дисків.
Негайно переходьте до рівня 3, якщо помічаєте будь-що з наведеного нижче
- Скрегіт, клацання або дзижчання з будь-якого накопичувача під час увімкнення живлення
- Накопичувач не визначається в BIOS/UEFI або взагалі не відображається у виводі
lsblk - Накопичувач визначається, але
mdadm --examineповертає помилки введення-виведення замість даних суперблоку - Температура поверхні накопичувача за кілька хвилин після підключення піднімається до ненормальних значень
- Показник S.M.A.R.T. Reallocated Sector Count (ID 05) сягає сотень, або Spin Retry Count (ID C0) зростає з кожним циклом увімкнення
Не намагайтеся відновлювати програмно механічно несправний накопичувач. Кожен прохід читання збільшує зношення вже пошкоджених поверхонь головок і пластин. Вимкніть живлення та зверніться до лабораторії, перш ніж намагатися виконати будь-який подальший доступ.
Подвійний збій у SHR-1 перебуває на межі між програмним і фізичним відновленням. Де саме проходить ця межа у вашому випадку, залежить від стану накопичувачів, а не від можливостей інструментів. Два фізично справні накопичувачі з цілими суперблоками дають програмним засобам реальний шлях до часткового відновлення. Два механічно несправні накопичувачі — це прямий шлях до лабораторії. У більшості реальних випадків подвійного збою ситуація опиняється десь між цими крайнощами, саме тому оцінка стану накопичувачів перед вибором шляху відновлення тут важливіша, ніж у будь-якому іншому сценарії цієї серії.






