CentOS 6.4(2.6.32-358.6.1.el6.x86_64)ボックスをインストールするときに、LVM物理ボリューム全体(ホーム、ルート、スワップの両方を含む)の暗号化を間違えました。 CPUの90%でkcryptd
を実行しているため、ファイルの移動に非常に時間がかかること、および重要なデータを含まないホームサーバーにすぎないため、暗号化は実際には必要ないことに気づきました。しかし、私はすでにそれを構成し、パッケージのロードをインストールし、電源管理まで調整し、すべてのサービスをセットアップしました。
全体を再インストールして設定をやり直すことなく、暗号化を削除する方法はありますか? 30分もかからないオプションが欲しいのですが、あるかどうかはわかりません。
また、kcryptd
をより使いやすくするための推奨事項がありましたら、お知らせください。
編集1
~]# fdisk -l /dev/sda
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000078c9
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 19458 155777024 83 Linux
~]# dmsetup ls
vg_centos-lv_home (253:3)
vg_centos-lv_swap (253:2)
vg_centos-lv_root (253:1)
luks-2ffcc00c-6d6e-401c-a32c-9c82995ad372 (253:0)
~]# pvdisplay
--- Physical volume ---
PV Name /dev/mapper/luks-2ffcc00c-6d6e-401c-a32c-9c82995ad372
VG Name vg_centos
PV Size 148.56 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 38030
Free PE 0
Allocated PE 38030
PV UUID euUB66-TP3M-ffKp-WhF5-vKI5-obqK-0qKoyZ
編集2
~]# df -h / /home /boot
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
50G 2.3G 45G 5% /
/dev/mapper/vg_centos-lv_home
94G 1.3G 88G 2% /home
/dev/sda1 485M 53M 408M 12% /boot
それは可能です。必要です
次に、ブロックを暗号化されたボリュームからPV外の領域にコピーし、(成功後)暗号化されていない基本デバイスにコピーします。その後、クラッシュが発生した場合に変換を続行できるように、安全領域のカウンターを増やします。暗号化の種類によっては、ブロックデバイスの最後から最初にコピーする必要がある(または少なくとも役立つ)場合があります。
これがオプションの場合は、いくつかのコードを提供できます。
編集1
スワップパーティションを非アクティブ化します(コメントアウトしてetc/fstab
)。次に、別のLinuxを(CD/DVDから)ブートし、LUKSボリューム(cryptsetup luksOpen /dev/sda2 lukspv
)が、LVをマウントしないでください。おそらく、後でpvscan
を実行して、復号化されたデバイスが認識されるようにする必要があります。次にvgchange -ay vg_centos
ボリュームをアクティブにするために必要な場合があります。すぐに、それらのファイルシステムを減らすことができます。
e2fsck -f /dev/mapper/vg_centos-lv_root
resize2fs -p /dev/mapper/vg_centos-lv_root 3000M
e2fsck -f /dev/mapper/vg_centos-lv_home
resize2fs -p /dev/mapper/vg_centos-lv_home 2000M
その後、LVのサイズを減らす(そしてスワップLVを削除する)ことができます:
# with some panic reserve... shouldn't be necessary
lvresize --size 3100M /dev/mapper/vg_centos-lv_root
lvresize --size 2100M /dev/mapper/vg_centos-lv_home
lvremove /dev/mapper/vg_centos-lv_swap
# vgdisplay should show now that most of the VG is free space
vgdisplay
これでPVを削減できます(エキサイティングなことに、私はこれを自分でやったことがありません;-)):
vgchange -an vg_centos
pvresize --setphysicalvolumesize 5500M /dev/mapper/lukspv
編集:pvmove
を呼び出す前にpvresize
が必要な場合があります。エラーの場合は この質問 を参照してください。
パーティションサイズを縮小する前に、パーティションテーブルのバックアップを作成して、外部ストレージに保存する必要があります。
sfdisk -d /dev/sda >sfdisk_dump_sda.txt
このファイルを使用して、LUKSパーティションのサイズを縮小できます。サイズ(セクター単位)を約6に調整しますGiB(再度パニックリザーブ...):12582912。次に、調整したファイルをロードします。
sfdisk /dev/sda <sfdisk_dump_sda.mod.txt
再起動後にすべてが正常に見える場合は、空きスペースに新しいパーティションを作成し(せいぜいすべてのスペースを消費しない限り、おそらくなぜかはわかります...)、それをLVMパーティションにすることができます。次に、パーティションをLVM PV(pvcreate
)にし、新しいボリュームグループ(vgcreate
)とルート、ホーム、スワップ用の論理ボリューム(lvcreate
)を作成してフォーマットします( mke2fs -t ext4
、mkswap
)。次に、開いている暗号ボリュームの内容をコピーできます。最後に、新しいrootfsを使用するようにブートローダーを再構成する必要があります。
最初に述べたブロックコピーは、空き容量が多いため必要ありません。