您的位置:首页 > 运维架构 > Linux

安装Gentoo到基于dm-crypt加密的LVM分区

2010-11-30 09:51 369 查看

安装Gentoo到基于dm-crypt加密的LVM分区

最近对数据的安全性有了兴趣,正好也想试试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 gentoo

3. 用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 gentoo

4.生成initramfs文件,

4.1创建一个如下层次的目录

mkdir initram

cd initram

mkdir bin dev dev/mapper dev/vc etc newroot proc sys

4.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/vgchange

4.3复制相应的device

cp -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/0

4.4创建init脚本

#!/bin/sh

mount -t proc proc /proc

CMDLINE=`cat /proc/cmdline`

mount -t sysfs sysfs /sys

#wait a little to avoid trailing kernel output

sleep 3

#dm-crypt

/bin/cryptsetup luksOpen /dev/sda3 gentoo

#lvm

/bin/vgchange -ay gentoo

#root filesystem

mount -r /dev/mapper/gentoo-root /newroot

#unmount pseudo FS

umount /sys

umount /proc

#root switch

exec /bin/busybox switch_root /newroot /sbin/init ${CMDLINE}

4.5执行如下命令来生成initramfs文件

chmod a+x initrd

find . | cpio --quiet -o -H newc | gzip -9 > /boot/initramfs

4.6修改如grub.conf,添加initrd条目

title Gentoo Linux AMD64

root (hd0,0)

kernel /boot/kernel video=uvesafb:1440x900-32,mtrr:3,ywrap splash=silent,fadein,theme:livecd-2007.0 console=tty1

initrd /boot/initramfs

以上参考了Gentoo Wiki里的Root filesystem over LVM2, DM-Crypt and RAID

5.格式化并挂载lvm2创建的pv

mount /dev/mapper/gentoo-root /mnt/gentoo

mount /dev/mapper/gentoo-home /mnt/gentoo/home

6. 恢复之前备份的Gentoo到/mnt/gentoo

tar zvjfp gentoo.tar.bz2 -C /mnt/gentoo

7. 修改/mnt/etc/fstab文件,更改相应的device为lvm2创建的pv

重新启动电脑,没有问题的话会在引导kernel的时候提示你输入/devsda3的加密passphrase,如果正确就会像正常引导系统可以正常使用了,使用了dm-crypt加密之后可以保护电脑或者硬盘丢失后的数据安全(不能保证系统启动后的数据安全)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息