2

Мне дали жесткий диск для восстановления / извлечения данных. Этот жесткий диск когда-то был жестким диском компьютера, на котором были установлены windows и linux (используя grub для переключения между двумя). Загрузка с жесткого диска больше невозможна. При подключении к linux найдено 4 раздела (/dev/sdb[1256]), но можно прочитать только /dev/sdb1 . /dev/sdb1 - это раздел grub, в то время как /dev/sdb5 был определен как swap-раздел blkid (это могла быть другая программа, я проверю это). Монтирование разделов 2 и 6 приводит к ошибкам, var/log/syslog говорит о плохом суперблоке.
Тем не менее, самый раздражающий результат дает fdisk -l , который печатает таблицу разделов AFAIK.

Device    Start    End        Type
/dev/sdb1     2048  19531775  83 linux
/dev/sdb2 19533822 625141759   5 extended
/dev/sdb5 19533824  36304895  82 linux swap 
/dev/sdb6 36306944 625141759  83 linux

(1 сектор равен 512 байт, часть вывода была удалена мной. Добавлю при необходимости)

Если я правильно понимаю, что-то не так с таблицей разделов. Каким-то образом раздел 2 находится в том же месте, что и разделы 5 и 6, что может объяснить ошибки монтирования. (Я спрошу, какая ОС действительно использовалась на этом жестком диске).

Теперь на этом жестком диске есть важные файлы. Как мне получить эти файлы с жесткого диска или (лучше) изменить жесткий диск, чтобы linux мог монтировать все разделы. Моей первой мыслью было сделать резервную копию с помощью dd а затем запустить fsck на /dev/sdb (вы можете заметить, что я не эксперт в этом), хотя у меня есть сомнения.

ОБНОВЛЕНИЕ: Как указало Гравити, таблица разделов не повреждена и существует 3 раздела, из которых один является разделом подкачки. /dev/sdb1 может быть смонтирован и является разделом grub (судя по файлам раздела). /dev/sdb5 , скорее всего, является swap-patition (так как он помечен как таковой, и его размер соответствует нужной величине). Я попробую сделать fsck на /dev/sdb6 и попробую некоторые инструменты восстановления.
Кроме того, человек, который дал мне жесткий диск, теперь думает, дал ли он мне правильный. Я все равно буду искать файлы.

2 ответа2

7

Если я правильно понимаю, что-то не так с таблицей разделов. Каким-то образом раздел 2 находится в том же месте, что и разделы 5 и 6, что может объяснить ошибки монтирования.

Это нормально. Таблица разделов MBR эпохи MS-DOS может содержать только 4 раздела, поэтому последний обычно делают "расширенным" разделом, в который вложены дополнительные "логические" разделы.

(Linux всегда нумерует логические разделы, начиная с 5+, и хотя имена в fdisk -l фактически составлены, они также следуют той же нумерации.)

(Хотя по теме, не забывайте, что есть другие таблицы разделов, такие как GPT. Fdisk 2.23 понимает GPT, но более старые версии - нет.)

Также обратите внимание, что типы разделов не всегда соответствуют фактическим данным внутри. Не исключено, что владелец, возможно, решил использовать sdb5 для данных и sdb6 для подкачки, но забыл обновить типы разделов MBR (которые Linux в любом случае игнорирует).

Как я могу получить эти файлы с жесткого диска или (лучше) изменить жесткий диск, чтобы linux мог смонтировать все разделы

Попробуйте фоторепортаж.

Моей первой мыслью было сделать резервную копию с помощью dd, а затем запустить fsck в /dev /sdb

Делать резервную копию - хорошая идея. Попытка запустить fsck на чем-то, что не является FS , ничего не даст. /dev/sdb1 или /dev/sdb6 были бы лучшими целями для этого, так как они содержат файловые системы.

-1

Отображаемая таблица разделов относится к чистой системе Linux: на ней нет никаких следов Windows. Итак, учитывая, что вы заявили:

Этот жесткий диск когда-то был жестким диском компьютера, на котором были установлены Windows и Linux ...

возможно, парень, который дал это тебе, был прав, когда сказал ...

Кроме того, человек, который дал мне жесткий диск, теперь думает, дал ли он мне правильный.

Пользовательские файлы находятся в /home/ , который, вероятно, будет разделом /dev/sdb6 . Нет необходимости использовать что-то более сложное, чем photorec , и, возможно, вы можете альтернативно восстановить полностью рабочее состояние раздела. Можете ли вы указать, какое именно сообщение об ошибке вы получаете, когда пытаетесь смонтировать раздел /dev/sdb6? Если дело только в плохом суперблоке, это можно легко вылечить:

  1. Проверьте файловую систему с помощью (возможно, вам придется повторить это с помощью ext2 или ext3, из приведенного выше не ясно, какая файловая система использовалась),

     sudo fsck.ext4 -v /dev/sdb6
    
  2. Если суперблок действительно поврежден, вы получите вывод

    fsck /dev/sdb6
    fsck 1.41.4 (27-Jan-2009)
    e2fsck 1.41.4 (27-Jan-2009)
    fsck.ext4: Group descriptors look bad... trying backup blocks...
    fsck.ext4: Bad magic number in super-block while trying to open /dev/sdb6
    
    The superblock could not be read or does not describe a correct ext4
    filesystem.  If the device is valid and it really contains an ext4
    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
    
  3. Давайте выясним, где находятся резервные суперблоки,

    sudo mke2fs -n /dev/sdb6
    

    В конце длинного вывода вы найдете что-то вроде:

    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
    
  4. И теперь, наконец, исправьте это, заменив неисправный суперблок одним (любым) из резервных:

    sudo e2fsck -b block_number /dev/sb6
    

Перезагрузитесь, и у вас все получится. Если нет, попробуйте другой суперблок. Как я уже сказал, если по этой причине вы не можете смонтировать раздел /dev/sdb6 , все это намного проще, чем использование photorec , плюс вы восстановите диск и его разделы в их первоначальном состоянии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .