基本的に、私は this answerに従って、フルディスク暗号化を使用するシステムの暗号化されていないコンテンツを、ライブスティックから新しい(より小さな)SSDにクローンします。暗号化されたパーティションと通常のdd
のマッピングだけで構成されていると思いましたが、...
関係するパーティション/デバイスは次のとおりです。
/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
まず、gpartedを使用して/dev/sda1
と/dev/sda2
を/dev/sdc{1,2}
にコピーしましたが、動作しているように見えました(どちらもマウント可能)。次に、/dev/sdc3
に暗号化されたEXT4のコンテンツを保持するのに十分な大きさの新しいEXT4パーティションを作成し、/dev/sdc4
の残りのスペースに新しいスワップを作成しました。
次に、/dev/sda3
を復号化しました
Sudo cryptsetup luksOpen /dev/sda3 crypt1
を使用してその内容をコピーしました
Sudo dd if=/dev/mapper/ubuntu--vg-root of=/dev/sdc3
(/dev/mapper/ubuntu--vg-root
には元のルートパーティションが含まれており、正しくマウントできます)。これは、暗号化されたパーティションで実際に使用されている19 GiBかそこらで終了します。
その時点から、何かが失敗したようです。 /dev/sdc3
をマウントすることはできません。壊れているようです。
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 *****
そして、これは提案されたdmesg | tail
が生成したものです:
[ 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)
私は実際にパーティション分割についてあまり知りませんが、暗号化されていないコンテンツを単純にコピーするのは好きではないと思います-それは古いパーティションテーブルと互換性がないのでしょうか?間違ったサイズの何かが関係しているようです。おそらく暗号化されたものを最初にサイズ変更する必要がありますか?
だから、どういうわけかこれを修正できますか?または、同じことを達成するために、代わりに何をする必要がありますか?基本的に、暗号化されたEXT4ルートをSSDにクローンし、古いシステムの暗号化されていないブート可能なコピーを取得しますか? (/dev/sda
with全体のサイズを変更してからクローンを作成する場合、暗号化が非常に簡単になります。暗号化せずにクローンを作成することで、暗号化されたサイズ変更の面倒を回避できるということでした...)
全体が思ったよりも簡単であることがわかりました。 @ Xen2050のコメントに動機付けられて、基本的にシステム全体を新規インストールにrsync
することができました。
/mnt/new-root
にマウントしますcryptsetup luksOpen /dev/sdXY crypt1
を介して古いシステムを復号化しますmount /dev/mapper/ubuntu--vg-root /mnt/old-root
で古いルートパーティションをマウントしますrsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/old-root /mnt/new-root
/mnt/new-root/etc/fstab
のfstabを編集して、新しいディスク上のパーティションのUUIDを含めます(gparted
から取得できます)そして驚くべきことに、それがすべてです。再起動すると、新しいディスクからすべてを以前と同じように起動できます(暗号化なしで高速)。