fsck : Либо суперблок, либо таблица разделов, вероятно, повреждены.

Вопрос или проблема

У меня есть ноутбук с двойной загрузкой (Win10 и ubuntu), который использует загрузку UEFI и имеет 2 физических SSD. После того как я попытался уменьшить раздел ubuntu (sda6 ниже) и загрузил ubuntu, ядро ubuntu начинает загружаться, а через некоторое время я попадаю в оболочку восстановления busybox (потому что fsck нужно запустить после изменения размера, как скрипт инициализации)

К сожалению, fsresize и другие утилиты отсутствуют в распространённой версии busybox, поэтому я загрузился с USB-носителя live gparted и получил доступ к другим инструментам, таким как gdisk, lsblk, testdisk, parted и так далее.

Схема разделов следующая:

root@debian:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0 463.4M  1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs
                                      /run/live/rootfs/filesystem.squashfs
sda           8:0    0 238.5G  0 disk
├─sda1        8:1    0   260M  0 part
├─sda2        8:2    0    16M  0 part
├─sda3        8:3    0 105.9G  0 part
├─sda4        8:4    0  23.5M  0 part
├─sda5        8:5    0  47.1M  0 part
├─sda6        8:6    0 131.4G  0 part
└─sda7        8:7    0   800M  0 part
sdb           8:16   0 465.8G  0 disk
└─sdb1        8:17   0 465.8G  0 part
sdc           8:32   1   3.7G  0 disk
└─sdc1        8:33   1   3.7G  0 part /usr/lib/live/mount/medium
                                      /run/live/medium
sr0          11:0    1  1024M  0 rom
mmcblk0     179:0    0  14.6G  0 disk
└─mmcblk0p1 179:1    0  14.6G  0 part

где /dev/sda6 — это проблемный раздел ubuntu.

С помощью live CD gparted я попробовал процесс восстановления с помощью fsck:

root@debian:~# fsck.ext4 /dev/sda6
e2fsck 1.47.0 (5-Feb-2023)
Размер файловой системы (согласно суперблоку) составляет 35389440 блоков
Физический размер устройства составляет 34451766 блоков
Скорее всего, суперблок или таблица разделов повреждены!
Прервать? да

Одно из решений, найденных в интернете, это изменить размер раздела с помощью resize2fs, что не работает:

root@debian:~# resize2fs -f /dev/sda6
resize2fs 1.47.0 (5-Feb-2023)
Изменение размера файловой системы на /dev/sda6 до 34451766 (4k) блоков.
resize2fs: Не удается прочитать битовую карту блока при попытке изменить размер /dev/sda6
Пожалуйста, запустите 'e2fsck -fy /dev/sda6', чтобы исправить файловую систему
после прерванной операции изменения размера.

Я также попробовал fsck с другими суперблоками (32768 и т.д.), но они все выдали ту же ошибку.

Затем я проверил таблицу разделов, которая показывает:

root@debian:/home/user# gdisk /dev/sda
GPT fdisk (gdisk) версия 1.0.10

Сканирование таблицы разделов:
  MBR: защитный
  BSD: отсутствует
  APM: отсутствует
  GPT: присутствует

Найдена действительная GPT с защитным MBR; используется GPT.

Команда (? для справки): p
Диск /dev/sda: 500118192 сектора, 238.5 GiB
Модель: SanDisk SD9SB8W2
Размер сектора (логический/физический): 512/512 байт
Идентификатор диска (GUID): 0AE22A81-8CBF-4E26-BD23-C0B1279204CA
Таблица разделов может содержать до 128 записей
Основная таблица разделов начинается с сектора 2 и заканчивается сектором 33
Первый используемый сектор — 34, последний используемый сектор — 500118158
Разделы будут выровнены на границах 2 секторов
Общее свободное пространство составляет 15338 секторов (7.5 MiB)

 Номер  Начало (сектор)    Конец (сектор)    Размер       Код  Имя
   1            2048          534527   260.0 MiB   EF00  EFI системный раздел
   2          534528          567295   16.0 MiB    0C01  Зарезервированный Microsoft ...
   3          567296       222707711   105.9 GiB   0700  Основной раздел данных
   4       222709090       222757289   23.5 МиБ    0700
   5       222757290       222853679   47.1 MiB    EF00  EFI системный раздел
   6       222853680       498467812   131.4 GiB   8300
   7       498479104       500117503   800.0 MiB   2700  Основной раздел данных

Команда (? для справки):

Я заметил, что конец раздела 6 не находится перед началом раздела 7, поэтому я удалил раздел и заново его создал, теперь раздел 6 заканчивается прямо перед разделом 7 (498479103)

После этого изменения раздела fsck продолжает выдавать ту же ошибку.

В dmesg есть ошибка о неправильной геометрии на /dev/sda6

У меня есть резервные копии, так что это не большая проблема, и к моему удивлению testdisk может считать, получить доступ и скопировать все мои данные (расширенные -> параметры файловой системы) на /dev/sdb1 (другой диск в той же системе)

Диск /dev/sda - 256 ГБ / 238 GiB - CHS 31130 255 63

     Раздел                  Начало        Конец    Размер в секторах
  1 P EFI System                  2048     534527     532480 [EFI системный раздел]
  2 P MS Reserved               534528     567295      32768 [Зарезервированный раздел Microsoft]
  3 P MS Data                   567296  222707711  222140416 [Основной раздел данных] [ОС]
  4 P MS Data                222709090  222757289      48200 [HIVE-CONFIG]
  5 P EFI System             222757290  222853679      96390 [EFI системный раздел]
> 6 P Linux filesys. data    222853680  498467812  275614133
  7 P Windows Recovery Env   498479104  500117503    1638400 [Основной раздел данных]

 [  Тип  ] >[Создание образа]  [  Выход  ]
                                Создать образ

gparted или parted отказываются что-либо делать с разделом, потому что на нём есть ошибки.

Нет групп томов, которые использовались. По крайней мере, оригинальный fstab не упоминает об этом.

Есть ли кто-нибудь, кто знает чудесное решение для исправления этого без полной переустановки, например, перестройки файловой системы? Или перестройки (нескольких) суперблоков?

Ответ или решение

Решение проблемы с поврежденным суперблоком или таблицей разделов в Ubuntu

Описание проблемы

Проблема, с которой вы столкнулись, заключается в повреждении суперблока или таблицы разделов вашего диска. Команда fsck указывает на то, что размер файловой системы, указанный в суперблоке, не соответствует физическому размеру устройства. Ваша система запускается в режим восстановления, так как fsck требует проверки файловой системы после выполнения команд изменения размерности.

Причины возникновения проблемы

  1. Изменение размера раздела: Попытка изменить размер раздела Ubuntu могла повредить структуру файловой системы, особенно если процесс был прерван или завершился ошибкой.
  2. Поврежденный суперблок: Суперблок хранит важную информацию о файловой системе, и если он поврежден, система не сможет корректно идентифицировать размер и структуру файловой системы.
  3. Ошибки в таблице разделов: Неверные данные в таблице разделов могут привести к несоответствию между ожидаемыми и фактическими значениями, что также вызывает поведение системы как в вашем случае.

Шаги для восстановления

  1. Проверка таблицы разделов:

    • Поскольку вы уже использовали gdisk и убедились, что таблица была исправлена, необходимо проверить наличие других проблем с разделом /dev/sda6.
    • Используйте gdisk /dev/sda и выполните команду v для проверки на ошибки. Главное, чтобы GPT-таблица была в порядке.
  2. Проверка суперблоков:

    • Попробуйте восстановить файловую систему с помощью альтернативных суперблоков. Если вы попробовали суперблоки 32768, возможно, стоит попробовать 98304, 163840 и 229376, так как они часто резервируются для ext4.
      e2fsck -b 98304 /dev/sda6
  3. Запуск fsck:

    • Попробуйте снова запустить fsck с ключом -f для принудительного выполнения.
      fsck.ext4 -f /dev/sda6
  4. Использование TestDisk:

    • Поскольку TestDisk может успешно читать данные, вы можете использовать его для выполнения операции восстановления. Это может помочь в восстанавливающей операции на уровне файловой системы.
  5. Резервное копирование данных:

    • Поскольку у вас уже есть резервные копии, рекомендуется сохранить важные данные с помощью инструментов, как rsync, или через графический интерфейс GParted для большего удобства.
  6. Восстановление файловой системы:

    • Если все вышеперечисленные методы не помогли, вам нужно будет восстановить файловую систему. Можно сделать это, используя команду:
      mkfs.ext4 /dev/sda6

      Однако учтите, что это приведет к удалению всех данных на разделе!

Заключение

Если повреждение суперблока или таблицы разделов сохранится после всех перечисленных попыток, возможно, лучше всего будет переустановить Ubuntu, используя ранее созданные резервные копии. Важно помнить, что работа с партициями и файловыми системами предполагает наличие резервных копий, как в вашем случае, что существенно упрощает процесс восстановления.

Оцените материал
Добавить комментарий

Капча загружается...