最近对数据的安全性有了兴趣,正好也想试试LVM2(logical volume manager逻辑卷管理), 就想着在硬盘划出来个分区,用dm-crypt加密这个分区,然后用LVM2管理这个分区划分几个逻辑分区:/,/home,swap,最终的硬盘分区/sda1    100 MB     /boot/sda2    10 GB    # For Windows/sda3    剩下所有空间用dm-crypt加密然后创建逻辑卷供Gentoo使用首先是检查kernel,把Device mapper support和Crypt target support还有相应的编译进内核(为了方便没有编译成模块),然后备份好Gentoo和相应的数据,用liveCD启动重新划分分区

  1. 创建一个加密的分区,需要提供一个passphrase# cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda3 2. 挂载该分区, 会提示你输入刚才你创建的passphrase# cryptsetup luksOpen /dev/sda3 gentoo3. 用LVM2管理/dev/mapper/gentoo,并划分pv,vg,lv#pvcreate /dev/mapper/gentoo#vgcreate gentoo /dev/mapper/gentoo#lvcreate -L 10G -n root gentoo#lvcreate -L 2G -n swap gentoo#lvcreate -L 30G -n home gentoo4.生成initramfs文件,4.1创建一个如下层次的目录mkdir initram cd initrammkdir bin dev dev/mapper dev/vc etc newroot proc sys4.2复制如下的命令,并创建一些需要的链接cp /bin/busybox /sbin/cryptsetup /sbin/lvm.static /sbin/mdadm bin mv bin/lvm.static bin/lvm ln -s busybox bin/cat ln -s busybox bin/mount ln -s busybox bin/sh ln -s busybox bin/switch_root n -s busybox bin/umount ln -s busybox bin/sleep ln -s lvm bin/vgscan ln -s lvm bin/vgchange4.3复制相应的devicecp -a /dev/console /dev/sda3 /dev/sda3 /dev/null /dev/urandom dev cp -a /dev/mapper/gentoo-root dev/mapper ln -s ../console dev/vc/04.4创建init脚本 #!/bin/shmount -t proc proc /procCMDLINE=cat /proc/cmdlinemount -t sysfs sysfs /sys#wait a little to avoid trailing kernel outputsleep 3#dm-crypt/bin/cryptsetup luksOpen /dev/sda3 gentoo #lvm/bin/vgchange -ay gentoo#root filesystemmount -r /dev/mapper/gentoo-root /newroot#unmount pseudo FSumount /sysumount /proc#root switchexec /bin/busybox switch_root /newroot /sbin/init ${CMDLINE}4.5执行如下命令来生成initramfs文件chmod a+x initrdfind . | cpio –quiet -o -H newc | gzip -9 > /boot/initramfs4.6修改如grub.conf,添加initrd条目title Gentoo Linux AMD64root (hd0,0)kernel /boot/kernel video=uvesafb:1440x900-32,mtrr:3,ywrap splash=silent,fadein,theme:livecd-2007.0 console=tty1initrd /boot/initramfs以上参考了Gentoo Wiki里的Root filesystem over LVM2, DM-Crypt and RAID5.格式化并挂载lvm2创建的pvmount /dev/mapper/gentoo-root      /mnt/gentoomount /dev/mapper/gentoo-home    /mnt/gentoo/home6. 恢复之前备份的Gentoo到/mnt/gentootar zvjfp gentoo.tar.bz2 -C /mnt/gentoo7. 修改/mnt/etc/fstab文件,更改相应的device为lvm2创建的pv重新启动电脑,没有问题的话会在引导kernel的时候提示你输入/devsda3的加密passphrase,如果正确就会像正常引导系统可以正常使用了,使用了dm-crypt加密之后可以保护电脑或者硬盘丢失后的数据安全(不能保证系统启动后的数据安全)