
CentOS 6.4 (2.6.32-358.6.1.el6.x86_64) ボックスをインストールするときに、LVM 物理ボリューム全体 (ホーム、ルート、スワップの両方を含む) を暗号化するというミスを犯しました。すぐに、kcryptd
CPU の 90% で実行しているためにファイルの移動に非常に長い時間がかかること、また、重要なデータを含まないホーム サーバーであるため暗号化は実際には必要ないことに気付きました。ただし、すでに構成して多数のパッケージをインストールし、電源管理の調整を行い、すべてのサービスをセットアップしました。
すべてを再インストールして設定を最初からやり直さずに暗号化を削除する方法はありますか? 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
答え1
それは可能です。
- 起動するための別の Linux (CD/DVD も可)
- PV の外側にいくらかの空きスペース (100M あればよい)
- ある程度の恐れ知らず…
次に、暗号化されたボリュームからブロックを 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
編集:を呼び出す前にMaybepvmove
が必要です。エラーの場合は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 を使用するようにブート ローダーを再設定する必要があります。
最初に述べたブロックのコピーは、空き領域が大量にあるため必要ありません。