Linux - novo disco rígido, número mágico ruim no superbloco

5

SOLUTION : Para todas as coisas que estavam certas, fazendo o volume com fsck e fazendo o sistema de arquivos com mkfs são duas operações separadas . Obrigado por me dar mensagens de erro agradáveis, descritivas, úteis , Linux. : D

fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

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>

Esse erro ocorreu ao executar sudo fsck /dev/sda em uma unidade totalmente nova. Eu corri sudo fdisk /dev/sda e adicionei uma nova partição (aceitei os padrões aqui), mas recebi um erro de número mágico correspondente ao tentar montá-lo. Eu tentei blocos alternativos (usando superblocos listados por sudo mkfs -n /dev/sda ) mas nenhum funcionou, eles foram todos listados como sendo corruptos.

Estou procurando uma maneira de resolver isso, especialmente considerando que é uma unidade totalmente nova, nunca particionada.

Adendo 1: Depois que isso falhou, eu dd d o disco inteiro com zeros, então usei fdisk e notei que ele não tinha partições. Eu adicionei uma partição em fdisk (aceitando os padrões). Em fdisk , as partições são listadas da seguinte forma:

Command (m for help): p

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes, 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x639543e8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  3907029167  1953513560   83  Linux

Eu usei sudo mount /dev/sda1 drivefolder/ e ele deu o seguinte erro:

[user@localhost ~]$ sudo mount /dev/sda1 drivefolder/
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.

A saída dmesg mostra isso:

[17467275.127319] ata9.00: configured for UDMA/133
[17467275.127325] ata9.00: device reported invalid CHS sector 0
[17467275.127332] ata9: EH complete
[17594695.132437]  sda: sda1

E fsck diz:

fsck from util-linux 2.23.1
e2fsck 1.42.7 (21-Jan-2013)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

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>

Como esta era uma nova unidade, e eu também dd da unidade inteira para zeros, não tenho como consertar. É reproduzível e até agora as soluções que vi envolveram o uso da opção fsck -b , mas eu tentei com todos os superblocos de backup fornecidos por mkfs e nenhum deles funcionou.

    
por Justin Mrkva 03.02.2014 / 18:35

1 resposta

4

Se você criou um mkfs /dev/sda1 , ao montá-lo, você precisará usar mount /dev/sda1 /wherever , não mount /dev/sda /wherever .

Para adicionar um volume a fstab para que seja montado automaticamente na inicialização, primeiro encontre seu UUID usando blkid :

# blkid /dev/sda1
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /media/whatever          ext2    noatime

e, convenientemente, você pode simplesmente adicionar essa linha inteira ao seu fstab - com a exceção de que você provavelmente deseja alterar o segundo parâmetro que indica onde montá-lo. Não monte coisas em /media com fstab - crie um diretório em /mnt ou similar.

Em distros derivadas do Debian e do Debian, como Ubuntu, links simbólicos para /dev/sdX1 , etc. de cada unidade física anexada estão em /dev/disk/by-id - esses links simbólicos terão nomes reconhecíveis baseados no barramento e fabricante da unidade. Use o UUID para fstab porque sempre funcionará.

    
por 05.02.2014 / 14:00