Você pode escrever um sistema de arquivos ext4 (ou qualquer outro) em um disco inteiro (em vez de uma partição), mas é claro que isso significa que não há tabela de partições; você está usando todo o dispositivo bruto.
Isto é possível se você começar com um disco com uma tabela de partições, e então equivocadamente (com a informação do disco ainda na memória) formatá-lo como ext4, sobrescrevendo a tabela de partição (ex .: mkfs.ext4 /dev/sdb
em vez de mkfs.ext4 /dev/sdb1
). O resultado é um disco sem uma tabela de partição válida (agora tem um bloco ext4 begin), mas o sistema de arquivos armazena seu tamanho independentemente, então ainda funcionará (isso também é feito em alguns discos externos). Você pode montar o dispositivo da mesma forma que uma partição - basta usar sdb
onde você teria usado sdb1
.
O que segue é arriscado como todo o inferno, como você pode imaginar. Você já deve ter um backup e, se não tiver, obtenha um agora . Por outro lado, se você não tiver um backup, isso significa que você não está muito interessado nesses dados (que estava em risco de falha de hardware, falha de software ou, dependendo do cenário, café derramado, cano de ruptura , roubo e desastres naturais e não naturais), por isso, se o pior acontecer, ainda assim não haveria grandes danos.
UPDATE : se você tiver o espaço em algum lugar, faça o backup , reformate e reinstale. Mesmo tempo exato que o método de mudança, mas cem por cento mais segurança de dados. E se você não excluir a cópia de backup, você terá uma imagem de backup de atualização lançada gratuitamente.
Primeiro passo: redimensione o sistema de arquivos ext4 para que seja um cilindro de disco inteiro mais curto. Obtenha o tamanho do cilindro em hdparm
, pois a tabela de partição, bem, simplesmente não está lá (o fdisk informará o número total de setores, e não como eles estão organizados). Em alguns drivers USB externos, talvez seja necessário tentar ler a marca e o modelo do disco e usá-lo para procurar informações na Internet. Drivers SATA devem estar OK.
Agora que você sabe quanto, você pode redimensionar o sistema de arquivos e deslocar toda a partição "para a direita", no final do disco, liberando um cilindro no início, que é onde a tabela de partições e start blank space go (não sei exatamente por que nos discos do LBA sdX1 deve iniciar um cilindro - ou uma faixa - após a tabela de partições, mas nunca achei que vale a pena experimentar).
Para mudar a partição, você pode usar uma estratégia de buffer excessivamente perigosa ou a opção reverse para dd_rescue
(parece ter visto algum relatório de bug no qual esta opção foi dita não funcionar).
Você pode querer experimentar um arquivo grande - digamos, um gigabyte - para ver se as duas opções funcionam; deslocar o conteúdo para que ele mova dados de dezesseis megabytes do início dentro do arquivo, deixando o tamanho do arquivo igual; em seguida, inspecione o conteúdo para verificar se foi o que aconteceu. Depois, repita com /dev/sdb
e as compensações apropriadas.
Depois disso, use fdisk
para recriar a tabela de partições.
Boa sorte!