Essencialmente, estou seguindo esta resposta para clonar o conteúdo não criptografado de um sistema com criptografia de disco completo para um novo (menor) SSD, a partir de um stick ao vivo. Eu pensei que consistiria apenas em mapear as partições criptografadas, e então o usual dd
, mas não ...
Estas são as partições / dispositivos envolvidos:
/dev/sda: Old disc, with encrypted partition
/dev/sda1: FAT32 with boot flag
/dev/sda2: EXT2, containing some EFI and grub stuff
/dev/sda3: LUKS partition I want to clone (about 460 GiB);
contains a swap and an ecrypted EXT4 with about 20 GiB used
/dev/sdc: New SSD
Para começar, eu simplesmente copiei /dev/sda1
e /dev/sda2
para /dev/sdc{1,2}
usando gparted, o que pareceu funcionar (ambos montáveis). Em seguida, criei uma partição EXT4 nova com tamanho suficiente para conter o conteúdo do EXT4 criptografado em /dev/sdc3
e uma nova troca no espaço restante em /dev/sdc4
.
Em seguida, descriptografei /dev/sda3
com
sudo cryptsetup luksOpen /dev/sda3 crypt1
e copiado sobre o seu conteúdo, usando
sudo dd if=/dev/mapper/ubuntu--vg-root of=/dev/sdc3
(onde /dev/mapper/ubuntu--vg-root
contém a partição raiz original e pode ser corretamente montado). Isso termina após os 19 GiB ou mais que estão realmente em uso na partição criptografada.
A partir desse ponto, algo parece ter falhado; Não consigo montar /dev/sdc3
, pois parece estar quebrado.
ubuntu@ubuntu:~$ sudo mount /dev/sdc3 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sdc3,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
ubuntu@ubuntu:~$ sudo fsck /dev/sdc3
fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
Error reading block 60325888 (Invalid argument). Ignore error<y>? yes
Force rewrite<y>? yes
Superblock has an invalid journal (inode 8).
Clear<y>? yes
*** ext3 journal has been deleted - filesystem is now ext2 only ***
Superblock has_journal flag is clear, but a journal inode is present.
Clear<y>? yes
The filesystem size (according to the superblock) is 120880128 blocks
The physical size of the device is 14848000 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? yes
Error writing block 60325888 (Invalid argument). Ignore error<y>? yes
/dev/sdc3: ***** FILE SYSTEM WAS MODIFIED *****
E é isso que o dmesg | tail
sugerido produziu:
[ 51.575179] EXT4-fs (sdc2): mounting ext2 file system using the ext4 subsystem
[ 51.580102] EXT4-fs (sdc3): bad geometry: block count 120880128 exceeds size of device (14848000 blocks)
[ 51.582477] EXT4-fs (sdc2): warning: mounting unchecked fs, running e2fsck is recommended
[ 51.587740] EXT4-fs (sdc2): mounted filesystem without journal. Opts: (null)
[ 51.633994] FAT-fs (sdc1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 107.969122] EXT4-fs (sdc3): bad geometry: block count 120880128 exceeds size of device (14848000 blocks)
Na verdade, eu não sei muito sobre particionamento, mas suponho que ele não goste de simplesmente copiar o conteúdo não criptografado - talvez isso seja incompatível com a antiga tabela de partições? Parece estar envolvido algo com um tamanho errado. Talvez eu precise redimensionar as coisas criptografadas primeiro?
Então, posso consertar isso de alguma forma? Ou, o que devo fazer alternativamente para obter a mesma coisa - essencialmente clonar a raiz EXT4 criptografada no SSD e obter uma cópia inicializável e não criptografada do sistema antigo? (Se redimensionar e depois clonar toda a criptografia /dev/sda
com for significativamente mais fácil, eu também poderia fazer isso; minha suposição original era que clonar sem criptografia me ajudaria a criptografar tudo redimensionamento-hassle ...)