我有一个同时装有 Ubuntu 11.10 和 Windows 7 的系统,我想加密整个硬盘或至少我的部分分区。
我的分区表是这样的(标有 * 的是需要需要加密):
- Windows 启动保留分区
- *Windows 系统分区(ntfs)
- *Windows 数据分区 (ntfs)
- Ubuntu 根分区 (ext4)
- *Ubuntu 主分区(ext4)
- Ubuntu 交换
正如我所说,我不需要加密整个磁盘。
实现此目的的最佳方法是什么?也许是某种方法(TrueCrypt?),在系统启动之前输入密码,以便解密整个硬盘?或者也许使用仅限 Windows 的加密(针对 Windows 分区)和 Ubuntu 家庭加密(嗯,针对 Ubuntu 家庭分区)进行单独加密?
顺便说一句,我几乎总是使用 Ubuntu,所以如果我可以继续默认启动 Ubuntu 但也可以选择启动 Windows(就像在 grub 中一样),那就太好了。
编辑:我当时想这样做:使用 eCryptfs 加密 ubuntu home(我认为这用于在安装期间选择时加密 home)。使用 TrueCrypt 加密 Windows 分区。仍然使用 Grub 作为引导加载程序,当我选择 ubuntu 时,一切正常(登录时 home 被解密)。当我选择 windows 时,TrueCrypt 密码提示显示并启动 windows。
答案1
如果您正在寻找两种加密系统之间的交叉兼容性,我建议使用 TrueCrypt。
由于您已经有 /home 分区,所以事情会变得有点困难。
注意:请备份您修改的所有文件,以防事情不完全按计划进行。
建议备份:
dd if=/dev/sda of=/some/path/mbr.bin bs=512 count=1 #Backs up your Master Boot Record (GRUB2). You should also do this again if you create another partition (once you know it worked correctly).
#You should back up this file in a place that can be accessible both from Windows and Linux. Ideally a flash-drive or external drive.
#Your home folder will be safe until the end when you can delete it. After knowing everything works (you make a backup in the process of this guide)
因此,您已经安装了 Windows 和 Linux,您应该做的第一件事就是尝试加密您的 /home 分区。
Linux
首先从以下网址下载并安装相应架构的 .deb 文件:TrueCrypt.org
接下来,你有两个选择:
- 将所有文件夹从 /home 移回根文件系统。目前最好将它们移至 /home2。
- 创建一个分区来存放新的加密 Linux 主文件夹
选择 1:
首先,注销,然后按 Ctrl+Alt+F1 并登录。
cd /
sudo umount /home
rmdir /home
sudo mv /home2 /home
exit
Ctrl-Alt-F7 返回登录屏幕并照常登录
现在假设一切顺利,删除 /etc/fstab 中的 /home 行,并将用于存放 /home 文件夹的分区格式化为 TrueCrypt 容器:
homepartuuid=$(cat /etc/fstab | grep -E "[^#][ \t]/home" | awk '{print $1}' | sed 's/UUID=//')
homepart="/dev/$(basename $(readlink /dev/disk/by-uuid/$homepartuuid))"
echo $homepart #just to make sure we got it, if not set it manually
sudo sed -ri "s/^(UUID=$homepartuuid)/#\1/" /etc/fstab #Comment out /home entry... useful if you screw up and after you re-make the partition.
sudo truecrypt -c $homepart #If you installed the GUI, you have to use that for the process of creating the encrypted partition
根据需要设置选项。如果您安装了 GUI 版本,则目标是在显示登录屏幕之前提示输入安装密码。我不确定命令行版本会对此做出什么反应。我建议使用命令行版本的密钥文件。确保将其设为 ext2如果您希望使用适用于 Windows 的 ext2fs 驱动程序,Windows 可以读取它,则使用分区而不是 ext3/ext4
选择 2: 如果您有额外的空间,您可以采取简单的方法并创建一个新的分区来存放您的加密主文件夹。
使用 gparted 或类似工具来创建新分区(如果您必须调整 /home 或 / 的大小,则可以使用 LiveCD)
重启。
现在,如果您必须再次使用 gparted 来查找新分区的设备(例如 /dev/sda6)。使用 TrueCrypt 格式化新分区。如上所述,我建议对命令行版本使用密钥文件,因为我不知道它是否会提示输入密码。同样,如果您想在 Windows 中使用它,请将其设置为 ext2。
现在,使用 GUI 或命令行挂载新的 TrueCrypt 分区。这里有很多选项,我将留给您阅读 TrueCrypt 帮助。
将主文件复制到加密卷
cp -ar /home/[myusername]/* /media/truecrypt1 #Default truecrypt mount point
cp -ar /home/[myusername]/.??* /media/truecrypt1
#The only thing potentially missing after this are very rare files that are named .?, where '?' can be any character.
请不要删除 /home/[myusername] 中的文件!
现在,cp /media/truecrypt1/.profile /home/[myusername]
。另外,如果你使用过密钥文件,请将其移到这里(不安全!)或者知道可以在哪里引用它(只要它不是里面TrueCrypt 分区。
将以下行添加到 /home/[myusername]/.profile 的末尾:
sudo truecrypt /dev/sda6 -k /path/to/key/file /home #Where /dev/sda6 is the TrueCrypt partition. Omit the -k option if you didn't specify a keyfile.
在 /etc/sudoers 中添加此行visudo
:[myusername] ALL = (root) NOPASSWD : /usr/bin/truecrypt
现在,注销并重新登录。
仅仅因为你已取得了如此大的成就并不意味着什么。
检查 的输出mount
。如果有一个条目显示 /home/[myusername],则一切就绪!或者,您可以检查 .profile 的内容。如果我们添加的行不在那里,则表示您成功了!
但是!为了绝对安全,请重新启动并从全新启动中执行此操作。
如果您已成功完成此操作,请注销。Ctrl-Alt-F1
cd /
pulseaudio -k #I had to do this in my test install. Found it via: lsof /home
sudo umount /home/[myusername]
并删除 /home/[myusername] 中的所有内容除了.profile 文件。(您可能想知道现在发生了什么。如果您不注意,我将现有的 /home 与挂载重叠,这会隐藏 /home 中已存在的所有文件,直到您卸载覆盖文件系统。这就是为什么我们可以检查 .profile 文件以查看我们是否成功的原因。)
最后!使用 备份您的 MBR dd if=/dev/sda of=/path/to/backup/mbr.bin bs=512 count=1
。请记住,它必须可从 Window 和 Linux 访问。运行grub-install --force /dev/sda3
,其中 /dev/sda3 是您的根文件系统分区。
如果出现问题,请重新阅读教程并确保您已完成所有步骤。如果您在这里遇到问题,您可能应该撤消所有操作。
撤消选择 1:
- 将 TrueCrypt 分区重新格式化为原来的格式(可能是 ext4) - 删除 /home/[myusername]/.profile 中的行。 -sudo mkdir /home2;sudo mount /dev/sdaX home2
其中 /dev/sdaX 是重新制作的 /home 分区 - sudo cp -aR /home/* /home2
- 验证您的文件(尤其是点文件) - sudo umount /home2;sudo rmdir /home2
- sudo rm -R /home/*
- 然后,取消注释 /etc/fstab 中以以下内容开头的行
#/dev/sdaX.../home
- sudo mount -a
- 注销并重新登录
撤消选择 2:
- 打开 Gparted 并将分区恢复到原来的状态(可能是删除和扩展操作。这可能需要注销、Ctrl+Alt+F1、登录,cd /;sudo umount / home; sudo su
然后改用 parted。或者您可以从 LiveCD 启动以调整 /home 分区的大小)。- 回到正常系统,从 .profile 中删除添加的行 - 注销并重新登录
视窗
重启 Windows 并运行 TrueCrypt 全盘加密。这会将新的 TrueCrypt MBR 放到您的磁盘上。
这是简单的部分。
如何在 Windows/Linux 之间进行选择
你们中的一些人现在可能正在收拾行李,因为你们的启动屏幕看起来不像以前那样了。好吧,我们为此做好了准备,将 grub 安装到根分区而不是 MBR。当 TrueCrypt 屏幕出现时,点击ESC
进入 GRUB2 引导加载程序 - 理想情况下。
如果它不起作用,请下载“dd for Windows”并运行 dd.exe if=F:\path\to\backup\mbr.bin of=\?\Device\Harddisk0\Parition0(可能必须以管理员权限运行它)。
答案2
要加密 Ubuntu 主页,只需在安装过程中选择该选项(在底部)。
https://help.ubuntu.com/community/GraphicalInstall?action=AttachFile&do=get&target=install-step5.png
至于 Windows,您使用哪个版本?Truecrypt 似乎提供系统分区加密,而且我听说 W7 有一些加密选项。