A maneira normal de acessar um sistema de arquivos em um deslocamento em um disco é com uma partição. No entanto, como você não tem espaço para uma tabela de partições no início do disco, precisará passar por um método mais complexo.
Você pode usar um dispositivo de loop . Os dispositivos de loop são usados principalmente para fazer um arquivo aparecer como um dispositivo de bloco, mas você pode fazer o dispositivo de bloco iniciar em um deslocamento (e terminar em um deslocamento também) e o arquivo subjacente pode ser um dispositivo de bloco. um dispositivo de bloco que corresponde a um segmento de outro dispositivo de bloco. O comando para manipular dispositivos de loop é losetup
.
losetup -o 1600g /dev/loop0 /dev/sda
Certifique-se de que seu sistema de arquivos realmente termine antes do início do dispositivo de loop. Então você pode copiá-lo por atacado. Não vejo por que você precisaria criar um sistema de arquivos diferente¹: você não deve duplicar um sistema de arquivos btrfs na mesma máquina, mas mover um (ou seja, você ganhou) nunca acesse os dois ao mesmo tempo) está ok.
head -c 1100g /dev/sda >/dev/loop0
mount -r /dev/loop0 /mnt
# Check that the filesystem looks fine
umount /mnt
losetup -d /dev/loop0
Você também pode fazer isso por uma chamada adequada de dd
, mas isso é propenso a erros. É mais fácil prosseguir passo a passo e verificar os tamanhos antes de destruir os dados, se você configurar os dispositivos de bloco e, em seguida, alterar os dados aleatoriamente.
Agora que você moveu o sistema de arquivos, crie partições para não se deparar com esse problema novamente.
fdisk /dev/sda
…
Crie uma partição que comece no mesmo deslocamento que você passou para losetup
acima. Escreva as alterações e verifique se você pode montar essa partição.
Agora crie uma partição para o volume LUKS, crie o volume LUKS ( cryptsetup luksFormat
) e mova o sistema de arquivos btrfs novamente para o volume LUKS. Verifique se o sistema de arquivos ainda está bem. Exclua a partição no final do disco e estenda a partição no início do disco. Estenda o volume LUKS ( cryptsetup resize
) e, em seguida, estenda o sistema de arquivos.
¹ É simples fazê-lo - mkfs.btrfs /dev/loop0
- mas esta não é a melhor solução para o seu problema.