O que acontece se eu executar fsck em / dev / sda em vez de / dev / sda1?

6

Quando eu executei fsck no passado, eu sempre o executei no que eu pensava ser uma partição do sistema de arquivos, ie. fsck -yf /dev/sdaN , onde N é o número da partição no disco A. Um amigo meu correu recentemente o fsck em seu novo disco e relatou um monte de erros usando fsck -yf /dev/sda . Estou curioso, qual é a diferença entre executar fsck em todo o disco ( /dev/sda ), versos executando em apenas uma única partição ( /dev/sda1 )?

    
por dinkelk 22.10.2014 / 18:33

3 respostas

6

Quando o fsck é executado, ele deve primeiro tentar localizar o superbloco de um sistema de arquivos para começar a percorrer a estrutura do sistema de arquivos para validá-lo. Como o dispositivo /dev/sda corresponde à unidade inteira, a primeira parte do disco provavelmente conterá a tabela de partições ou Master Boot Record e fsck não serão capazes de localizar o superbloco para um sistema de arquivos suportado (a menos que você consiga algo que de alguma forma corresponde a um número mágico para um sistema de arquivos conhecido). Eu esperaria que ele saísse por engano ou fornecesse resultados imprecisos (como seu amigo experimentou). No entanto, eu ainda não realizei este experimento.

    
por 22.10.2014 / 20:38
5

Não funcionará se o sistema de arquivos estiver instalado em uma partição (por exemplo, sda1 ).

fsck e seus irmãos são ferramentas para realizar manutenção em sistemas de arquivos (daí o nome: f ile s ystem c chec k ), não de dispositivos de bloco.

Suponho que, teoricamente, é possível colocar um sistema de arquivos diretamente em um dispositivo de bloco por meio de algo como mke2fs -j /dev/sda , mas essa é uma prática muito, muito ruim. Mas se você fizer isso, o sistema de arquivos viveria diretamente no sda e, em seguida, para fsck , você realmente apontaria apenas fsck no dispositivo. Não faça isso . Tabelas de partição estão lá por uma razão, e não é apenas para ocupar uma quantidade nominal de espaço para um índice.

    
por 22.10.2014 / 21:50
1

Se o dispositivo contiver um sistema de arquivos suportado, o fsck deverá funcionar. O dispositivo pode ser um disco rígido inteiro como / dev / sda, ou uma partição ou um disco de flip (qualquer um lembra quais foram?) Como / dev / fd0, ou até mesmo um arquivo em outro disco rígido como ~ / hdimage.img . Para unidades de disquetes, a unidade inteira é normalmente usada, portanto, não há razão para particionar, então o sistema de arquivos é feito em / dev / fd0. Convencionalmente, os discos rígidos são divididos em partições e os sistemas de arquivos são construídos nas partições. No entanto, se você quiser usar a unidade inteira como uma partição e não precisar inicializar a partir dela, poderá criar um sistema de arquivos diretamente no dispositivo (mke2fs / dev / sdb), montá-lo e copiar muitos arquivos para ele, então o fsck / dev / sdb deve funcionar. Isso foi chamado de configuração "superfloppy". Acho que os antigos discos iomega de 100MB também eram normalmente formatados dessa maneira. Um disco nem precisa ter um sistema de arquivos - ele pode ter um único arquivo. Eu costumo fazer arquivos tar do tamanho certo para caber em um DVD, gravá-los no disco. O disco não é montável, mas tar -xvf algum / where / myfile / dev / sr0 extrai o myfile do disco.

    
por 07.12.2016 / 02:30

Tags