web-dev-qa-db-ja.com

ディスクパーティションを復号化する最も簡単な方法は何ですか?

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
5
mart1n

それは可能です。必要です

  1. ブートする別のLinux(CD/DVDはOK)
  2. pVの外側の予備スペース(100Mが良いでしょう)
  3. ある程度の大胆不敵...

次に、ブロックを暗号化されたボリュームから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 ext4mkswap)。次に、開いている暗号ボリュームの内容をコピーできます。最後に、新しいrootfsを使用するようにブートローダーを再構成する必要があります。

最初に述べたブロックコピーは、空き容量が多いため必要ありません。

3
Hauke Laging