Повреждение ФС ext3 [Как восстановить?]

Discussion in 'Безопасность и Анонимность' started by m0le[x], 14 Feb 2010.

  1. m0le[x]

    m0le[x] Wardriver

    Joined:
    25 Oct 2006
    Messages:
    759
    Likes Received:
    576
    Reputations:
    105
    Ситуация следующая:
    ОС: Debian Lenny
    Последнее время часто начал зависать компьютер или самопроизвольно перезагружаться. После перезагрузки иногда обнаруживались ошибки и повреждения в файловой системе. Обычно просто запускал fsck, он все и исправлял.
    Сегодня ситуация повторилась, fsck работал очент долго, в итоге после перезагрузки не загрузился grub. Хотел его восстановить с livecd. Загружаюсь с Ubuntu, но оказалось что раздел не монтируется.
    Вывод mount:
    Code:
    mount: wrong fs type, bad option, bad superblock on /dev/sda1,
           missing codepage or helper program, or other error
           In some cases useful info is found in syslog - try
           dmesg | tail  or so
    mount с указанием файловой системы тоже ничего не дает.

    Пытался запустить fsck:
    Code:
    ubuntu@ubuntu:~$ sudo fsck -a /dev/sda1
    fsck 1.40.8 (13-Mar-2008)
    fsck.ext3: Attempt to read block from filesystem resulted in short read while trying to open /dev/sda1
    
    Вывод fdisk:
    Code:
    ubuntu@ubuntu:~$ sudo fdisk -l
    
    Disk /dev/sda: 250.0 GB, 250059350016 bytes
    255 heads, 63 sectors/track, 30401 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x26282627
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1       30071   241545276   83  Linux
    /dev/sda2           30072       30401     2650725    5  Extended
    /dev/sda5           30072       30401     2650693+  82  Linux swap / Solaris
    
    Disk /dev/sdb: 750.1 GB, 750156374016 bytes
    255 heads, 63 sectors/track, 91201 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0xdb152c0b
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb2   *           2       91201   732564000    5  Extended
    /dev/sdb5               2       91201   732563968+   7  HPFS/NTFS
    
    Как я понимаю таблица разделов не нарушена.

    dumpe2fs пишет что поврежден суперблок
    Code:
    ubuntu@ubuntu:~$ sudo dumpe2fs /dev/sda1
    dumpe2fs 1.40.8 (13-Mar-2008)
    dumpe2fs: Attempt to read block from filesystem resulted in short read while trying to open /dev/sda1
    Couldn't find valid filesystem superblock.
    Но как я понял, есть бэкапы суперблоков:
    Code:
    ubuntu@ubuntu:~$ sudo mke2fs -n /dev/sda1
    mke2fs 1.40.8 (13-Mar-2008)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    15097856 inodes, 60386319 blocks
    3019315 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    1843 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 32768 /dev/sda выдает вот что:
    Code:
    sudo e2fsck -b 32768 /dev/sda1
    e2fsck 1.40.8 (13-Mar-2008)
    e2fsck: Device or resource busy while trying to open /dev/sda1
    Filesystem mounted or opened exclusively by another program?
    С самого утра сижу мучаюсь, подскажите пожалуйста, как мне восстановить раздел и данные на нем.
    Заранее спасибо.
     
  2. x[0]x

    x[0]x Banned

    Joined:
    2 Dec 2008
    Messages:
    31
    Likes Received:
    5
    Reputations:
    -4
    dd if=/dev/sda of=/dev/null bs=1M

    проверить не?
     
  3. m0le[x]

    m0le[x] Wardriver

    Joined:
    25 Oct 2006
    Messages:
    759
    Likes Received:
    576
    Reputations:
    105
    dd: reading `/dev/sda': Input/output error
    136+0 records in
    136+0 records out
    69632 bytes (70 kB) copied, 24,3067 s, 2,9 kB/s

    А что проверить то?
     
  4. tux

    tux Elder - Старейшина

    Joined:
    26 Mar 2009
    Messages:
    423
    Likes Received:
    231
    Reputations:
    67
    http://linux.die.net/man/8/fsck.ext3
    Кстати, в крайнем случае можно примонтировать ext3 как ext2, плюнув на журнал. Но, в случае ТС имеет место BAD-сектора на 2ой дорожке. Есть команда badblocks на это дело. Либо, если есть другой HDD - копировать посекторно на другой диск, а уж потом восстанавливать данные. Тут уж у каждого своя паранойя. ;)
     
  5. iv.

    iv. Elder - Старейшина

    Joined:
    21 Mar 2007
    Messages:
    1,183
    Likes Received:
    438
    Reputations:
    107
    Также полезно использовать smartctl -A /dev/sda для выявления умирающего диска. В частности смотреть параметры Raw_Read_Error_Rate и Seek_Error_Rate.
     
  6. m0le[x]

    m0le[x] Wardriver

    Joined:
    25 Oct 2006
    Messages:
    759
    Likes Received:
    576
    Reputations:
    105
    Всем большое спасибо за советы, на выходных буду пытаться восстановить, потом отпишу о результатах...