wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD (После отключения - слетела разметка)

IDE, SATA, SCSI, внешние USB-HDD, SSD, USB-Flash накопители

Модератор: Модераторы разделов

Ответить
malor
Сообщения: 335

wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение malor »

Бывает, что наш сервер самопроизвольно отключается. После очередного такого отключения он не загрузился в Рабочий стол.
Пришлось закомментить один из SSD в fstab.

Когда удачно загрузились в рабочий стол, то пробуем примонтировать SSD (на нём сверхважные данные).
# mount /home/mybase
mount: /home/mybase: special device /dev/sdc1 does not exist


Смотрим что выдаёт команда lsblk про раздел sdc1:
# lsblk -o NAME,MOUNTPOINT,LABEL,PARTLABEL,FSTYPE,STATE,SIZE,TYPE,MODEL
sdc running 223,6G disk D2CSTK251M11-024
Как видим, про sdc1 не упомянуто.

Видимо слетела разметка. Создаем командой fdisk один раздел на диске sdc, но не форматируем.
Диск /dev/sdc: 223,6 GiB, 240057409536 байт, 468862128 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x28ba59eb

Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdc1 2048 468862127 468860080 223,6G 83 Linux
Вывод команды lsblk:
sdc running 223,6G disk D2CSTK251M11-024
└─sdc1 223,6G part
Пробуем смонтировать:
# mount /home/mybase
mount: /home/mybase: wrong fs type, bad option, bad superblock on /dev/sdc1, missing codepage or helper program, or other error.


Смотрим перечень суперблоков:
# mkfs -n /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
14655488 inodes, 58607510 blocks
2930375 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1789 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Пробую каждый из них задействовать взамен вышедшего из строя, но всё время такая картина:
# e2fsck -b 294912 /dev/sdc1
e2fsck 1.42.9 (28-Dec-2013)
e2fsck: Bad magic number in super-block while trying to open /dev/sdc1

The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
Команда "mkfs -n /dev/sdc1" перечислила 14 номеров суперблоков и ни один из них не рабочий?..

Иногда вместо слов
e2fsck: Bad magic number in super-block while trying to open /dev/sdc1
были слова
"e2fsck: Недопустимый аргумент while trying to open /dev/sdc1"

////////////////////////////////////////////////////////////
По поводу разметки.

Ранее, разметка на диске создавалась в parted командой:
mkpart primary ext4 2MiB 100%
Сегодня (как я упоминал выше) разметка создавалась утилитой fdisk.

fdisk выдаёт, что начало диска - сектор 2048. В то же время, я помню, что команда print утилиты parted
выводя сводку началом раздела отображала какое-то другое число, отличное от 2048. Мне кажется
оно было нечётное, типа 2037, или 2049, как-то так.
Может это и не важно с точки зрения борьбы за суперблоки, но на всякий случай решил упомянуть.

Как спасти данные с диска?
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение ormorph »

malor писал(а):
01.10.2022 08:59
Как спасти данные с диска?
Для того, чтобы спасти данные, нужно знать начало и конец раздела, который был создан ранее(хотя бы начало), и при разметке нужно было указать их. У вас хотя бы тип раздела показывает после разметки?

Shell

# blkid /dev/sdc1|awk -v RS=" " '/^TYPE=/ {print substr($0,6)}'
Вам бы создать образ sdc диска и с ним уже экспериментировать по восстановлению, но для этого нужен более емкий ssd.
Спасибо сказали:
malor
Сообщения: 335

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение malor »

Команда
# blkid /dev/sdc1|awk -v RS=" " '/^TYPE=/ {print substr($0,6)}'
ничего не выдала.

На SSD раздел месяц назад мной был создан такой командой (в parted):
mkpart primary ext4 2MiB 100%

Лмбо такой:
mkpart primary ext4 1MiB 100%

Других вариантов нет.
Спасибо сказали:
Аватара пользователя
Zer0
Сообщения: 479
ОС: Void, Slackware

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение Zer0 »

malor, утилита R-Studio или в крайнем случае R-Linux помогает в 99% случаев.
Memento mori ... сделай бэкап.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение Bizdelnick »

testdisk Вам в руки. Он умеет находить файловые системы при слетевшей разметке и восстанавливать её или копировать файлы с них без записи изменений на сам носитель. Я советую воспользоваться вторым вариантом, поскольку непонятно, в работоспособном ли состоянии сам SSD.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение ormorph »

malor писал(а):
01.10.2022 10:42
Команда
# blkid /dev/sdc1|awk -v RS=" " '/^TYPE=/ {print substr($0,6)}'
ничего не выдала.
Это плохо, значит скорее всего разметка начало, конец ФС не соответствует, либо вообще там каша из байтов. Может у вас вообще раньше разметка gpt была, а сейчас dos. Я обычно не пользуюсь parted, по этому не знаю как он там дeлает разметку. Как вариант можете проверить создать файл определенного размера и далее подключить его как блочное устройство командой:

Shell

# losetup -fP file.img
Должно появиться устройство /dev/loop0, с ним и работать как с диском, разметить его как вы размечали и посмотреть адрес начала, его и прописывать при создании в fdisk.
Просмотреть адрес начала - команда:

Shell

# fdisk -l /dev/loop0
Спасибо сказали:
Аватара пользователя
Zer0
Сообщения: 479
ОС: Void, Slackware

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение Zer0 »

Еще имеет смысл перед действиями по восстановлению сделать дамп SSD с помощью ddresque и над ним уже работать. Лучше использовать версию Антонио Диас Диас.
Memento mori ... сделай бэкап.
Спасибо сказали:
Aliech
Сообщения: 952
Статус: дилетант широкого профиля
ОС: Gentoo arm64 musl hardened
Контактная информация:

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение Aliech »

Тут беда какая? Беда в том, что легко могла слететь не разметка, а nvram, в котором текущая карта блоков была. Т.е. внутри самого SSD. И тогда уже ничего не поможет из того, что доступно обывателю.
Zer0 писал:
01.10.2022 11:12
malor, утилита R-Studio или в крайнем случае R-Linux помогает в 99% случаев.
Хорошие инструменты. В моём эникейном прошлом R-Studio помог поднять не один и не два поехавших аппаратных массива из небытия.

В любом случае: снимать копию и начинать идти, перебирая инструменты, пока не будет достигнут удовлетворительный результат. С некоторой вероятностью, он (результат) не будет достигнут никогда.
С уважением,
Павел Алиев
Спасибо сказали:
malor
Сообщения: 335

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение malor »

Выполнил сканирование в R-Linux. Скрин говорит о том, что R-Linux не увидел ни одного файла на диске?
scan_SSD_v1.jpg

ФС EXT4
Спасибо сказали:
Аватара пользователя
Zer0
Сообщения: 479
ОС: Void, Slackware

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение Zer0 »

Сканировать нужно не раздел, а диск D2CSTK... судя по всему. И за 13 минут он не отсканируется.
Последний раз редактировалось Zer0 01.10.2022 21:51, всего редактировалось 1 раз.
Memento mori ... сделай бэкап.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение ormorph »

Можете выложить где нибудь неполный образ где то 3 мб, и ссылку дать. Может я тоже с образом немного поиграюсь.

Shell

# dd if=/dev/sdc of=file.img bs=1M count=3
Спасибо сказали:
malor
Сообщения: 335

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение malor »

Ссылку на образ (на файлобменнике) отправил вам в ЛС.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение ormorph »

Ответ о грустном написал в личку. Нет там отформатированного раздела.
Спасибо сказали:
malor
Сообщения: 335

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение malor »

Я прочёл ваш ответ. Можно было сюда писать, т.к. никаких личных данных в нём нет. :]

Выше вы говорили о пробной разметке на /dev/loop0. Сделал:

Код: Выделить всё

# dd if=/dev/zero of=testfile.img bs=1M count=30
30+0 записей получено
30+0 записей отправлено
31457280 байт (31 MB, 30 MiB) скопирован, 0,0268143 s, 1,2 GB/s
# losetup -fP testfile.img
# fdisk -l /dev/loop0
Диск /dev/loop0: 30 MiB, 31457280 байт, 61440 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт

# parted /dev/loop0
GNU Parted 3.2
Используется /dev/loop0
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.
(parted) print
Ошибка: /dev/loop0: метка диска не определена
Модель: Устройство типа loopback (loopback)
Диск /dev/loop0: 31,5MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: unknown
Флаги диска:
(parted) mklabel msdos
(parted) mkpart primary ext4 2MiB 100%
(parted) print
Модель: Устройство типа loopback (loopback)
Диск /dev/loop0: 31,5MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Флаги диска:

Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
 1     2097kB  31,5MB  29,4MB  primary  ext4              lba

(parted) quit
Информация: Не забудьте обновить /etc/fstab.

# fdisk -l /dev/loop0
Диск /dev/loop0: 30 MiB, 31457280 байт, 61440 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x90246360

Устр-во      Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/loop0p1               4096 61439   57344    28M            83 Linux
#
//////////////////////////////////////////////////

Zer0, я просканировал диск в R-Linux, но процесс тоже длился 13 минут:
scan_SSD_v2.jpg
//////////////////////////////////////////////////

Вид из программы Testdisk:
Testdisk_1.jpg
Testdisk_1.jpg (42.54 КБ) 3167 просмотров
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение ormorph »

malor писал(а):
01.10.2022 23:36
Выше вы говорили о пробной разметке на /dev/loop0. Сделал:
Это я уже говорил вам в личку: 4096*512=2097152, с этого адреса плюс некоторое пространство должны начинаться данные о отформатированной ФС. У вас же присутствуют только данные таблицы разделов в начале диска, а остальное пространство заполнено нулями. Такое ощущение, что диск был полностью пустой и вы в нем только создали таблицу разделов.
Простой вывод:

Shell

$ cat file.img |xxd -d >hexfile.txt
Далее можете в обычном редакторе просматривать вывод и переходить в поиске по адресу. Тот образ что вы скинули пустой, в нем присутствует только таблица разделов.
Добавлено (00:37):
Чтобы более точно, то можно просто вывести байты, которые не содержат нулей, из выше приведенного дампа.
hexparser.sh:

Код: Выделить всё

#!/bin/bash

file="$1"
cat $file | while read line
do
	if ! [[ "$line" =~ ^[[:print:]]+0000+" "+0000+" "+0000+" "+0000+" "+0000+" "+0000+" "+0000+" "+0000+[[:print:]]*$ ]] ; then
		echo $line
	fi
done

Shell

$ ./hexparser.sh hexfile.txt
Ваш вывод:

Shell

00000432: 0000 0000 0000 0000 eb59 ba28 0000 0020 .........Y.(...
00000448: 2100 8350 bf01 0008 0000 b03c f21b 0000 !..P.......<....
00000496: 0000 0000 0000 0000 0000 0000 0000 55aa ..............U.
Всё остальное нули.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение ormorph »

Вариант без дампа:

Shell

$ cat file.img |xxd -d |grep -v "0000 0000 0000 0000 0000 0000 0000 0000"
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: wrong fs type, bad option, bad superblock on /dev/sdc1 - восстановить разметку на SSD

Сообщение Bizdelnick »

malor писал(а):
01.10.2022 23:36
Вид из программы Testdisk
Ну жмите дальше quick search, может, найдёт что. А если не найдёт — то deeper search.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить