I hope I'm posting this in the right section. A couple of days ago my system froze and I had to hard-poweroff. I haven't been able to boot since - the process just sits idle where GRUB should start. I have since tried numerous ways to restore the filesystem, detailed below, none successful. The drive is an 8GB SSD inside an Acer Aspire One A110L, with Linux Mint 9 installed. The filesystem I'm trying to recover is on the first partition, /dev/sda1.
I've made a Peppermint live USB to have a lightweight rescue environment. Entered:
Code: Select all
peppermint@peppermint ~ $ sudo fdisk -l /dev/sda
Disk /dev/sda: 8069 MB, 8069677056 bytes
255 heads, 63 sectors/track, 981 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c9e11
Device Boot Start End Blocks Id System
/dev/sda1 * 1 933 7490560 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 933 981 387073 5 Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5 933 981 387072 82 Linux swap / Solaris
Code: Select all
peppermint@peppermint ~ $ sudo e2fsck -f /dev/sda1
e2fsck 1.41.11 (14-Mar-2010)
/dev/sda1: recovering journal
e2fsck: unable to set superblock flags on /dev/sda1
Code: Select all
peppermint@peppermint ~ $ sudo mke2fs -n /dev/sda1
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
468640 inodes, 1872640 blocks
93632 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1920991232
58 block groups
32768 blocks per group, 32768 fragments per group
8080 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Code: Select all
peppermint@peppermint ~ $ sudo e2fsck -f -b 32768 /dev/sda1
e2fsck 1.41.11 (14-Mar-2010)
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
/dev/sda1: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
e2fsck: unable to set superblock flags on /dev/sda1
Code: Select all
peppermint@peppermint ~ $ dmesg | tail
[ 9971.252479] ata2.00: configured for UDMA/66
[ 9971.252525] sd 1:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 9971.252542] sd 1:0:0:0: [sda] Sense Key : Aborted Command [current] [descriptor]
[ 9971.252562] Descriptor sense data with sense descriptors (in hex):
[ 9971.252572] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 9971.252611] 00 44 08 00
[ 9971.252628] sd 1:0:0:0: [sda] Add. Sense: No additional sense information
[ 9971.252645] sd 1:0:0:0: [sda] CDB: Write(10): 2a 00 00 44 08 00 00 00 08 00
[ 9971.252681] end_request: I/O error, dev sda, sector 4458496
[ 9971.252759] ata2: EH complete
Code: Select all
peppermint@peppermint ~ $ sudo dd_rescue -f /dev/sda /dev/sdc
dd_rescue: (info): ipos: 7880512.0k, opos: 7880512.0k, xferd: 7880512.0k
errs: 0, errxfer: 0.0k, succxfer: 7880512.0k
+curr.rate: 3330kB/s, avg.rate: 2810kB/s, avg.load: 2.4%
dd_rescue: (info): /dev/sda (7880544.0k): EOF
Summary for /dev/sda -> /dev/sdc:
dd_rescue: (info): ipos: 7880544.0k, opos: 7880544.0k, xferd: 7880544.0k
errs: 0, errxfer: 0.0k, succxfer: 7880544.0k
+curr.rate: 3991kB/s, avg.rate: 2810kB/s, avg.load: 2.4%
Next I tried testdisk on /dev/sda to see whether I could search for missing content, but the quick-search option gives me the same data my dd clone already has - printing directories shows most of the folders empty:Error mounting: 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
Code: Select all
TestDisk 6.11, Data Recovery Utility, April 2009
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
* Linux 0 32 33 932 168 4 14981120
Directory /
drwxr-xr-x 0 0 4096 12-Oct-2010 13:13 .
drwxr-xr-x 0 0 4096 12-Oct-2010 13:13 ..
drwx------ 0 0 16384 22-May-2010 19:41 lost+found
drwxr-xr-x 0 0 4096 28-Apr-2010 17:29 var
?--------- 0 0 0 etc
?--------- 0 0 0 media
?--------- 0 0 0 bin
drwxr-xr-x 0 0 4096 12-Nov-2010 15:39 boot
?--------- 0 0 0 dev
?--------- 0 0 0 home
drwxr-xr-x 0 0 12288 12-Nov-2010 15:19 lib
?--------- 0 0 0 mnt
?--------- 0 0 0 opt
?--------- 0 0 0 proc
?--------- 0 0 0 root
?--------- 0 0 0 sbin
?--------- 0 0 0 selinux
drwxr-xr-x 0 0 4096 27-Apr-2010 10:42 srv
?--------- 0 0 0 sys
drwxrwxrwt 0 0 4096 23-Nov-2010 01:05 tmp
drwxr-xr-x 0 0 4096 27-Apr-2010 10:42 usr
lrwxrwxrwx 0 0 33 12-Oct-2010 13:13 initrd.img
lrwxrwxrwx 0 0 30 12-Oct-2010 13:13 vmlinuz
-rw-r--r-- 1000 1000 92423 17-Jul-2010 15:37 vmlinuz.10469
-rw-r--r-- 0 0 0 12-Nov-2010 15:31 initrd.img.old
-rw-r--r-- 1000 1000 92423 17-Jul-2010 15:37 vmlinuz.old
Code: Select all
TestDisk 6.11, Data Recovery Utility, April 2009
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
Disk /dev/sda - 8077 MB / 7703 MiB - CHS 982 255 63
The harddisk (8077 MB / 7703 MiB) seems too small! (< 10077 MB / 9610 MiB)
Check the harddisk size: HD jumpers settings, BIOS detection...
The following partitions can't be recovered:
Partition Start End Size in sectors
Linux 281 90 2 1213 225 36 14981120
Linux 282 30 5 1214 165 39 14981120
Linux 283 132 42 1216 13 13 14981120
Linux 288 27 60 1220 163 31 14981120
Linux 288 222 63 1221 103 34 14981120
Linux 289 65 33 1221 201 4 14981120
Linux 290 103 6 1222 238 40 14981120
Linux 291 75 41 1223 211 12 14981120
Linux 292 178 15 1225 58 49 14981120
[ Continue ]
EXT4 Large file Sparse superblock Recover, 7670 MB / 7315 MiB
Seeing as I cannot run fsck successfully, I thought I'd ask for help before formatting the disk. Is there any other way around the "unable to set superblock flags on /dev/sda1" error? Maybe some other lower-level magic I could try? If I should post any other output, please let me know. I'm a fairly advanced user - if you're willing or able to help, don't be afraid to go technical. ; )
Cheers
Tad