分区与加密
文件系统创建示例:
fdisk -cu /dev/sda
cat /proc/partitions
major minor #blocks name
7 0 3351190 loop0
8 0 20971520 sda
8 1 204800 sda1
8 2 5120000 sda2
8 3 1024000 sda3
8 4 1024 sda4
8 5 102400 sda5
253 0 4096000 dm-0
253 1 1019904 dm-1
partx -d /dev/sda
partx -a /dev/sda
mkfs.ext4 /dev/sda5
之后提示会在挂载21次后检测,可是我不想叫他检测,怎么办呢?我前边写过一篇文章,就是用到tune2fs命令了。
tune2fs -i 0 /dev/sda5 #取消时间检测
tune2fs -c -1 /dev/sda5 #关闭强制检查挂载次数限制
tune2fs -l /dev/sda5
# blkid /dev/sda5
/dev/sda5: UUID="cffde973-ab02-4b52-a09c-2a7ee610255c" TYPE="ext4"
# mkdir /test
向/etc/fstab添加一个条目:
UUID="cffde973-ab02-4b52-a09c-2a7ee610255c" /test ext4 defaults 1 2
测试挂载:
# mount /test
删除现有文件系统
1. 通过使用umount /mountpoint卸载文件系统。
2. 在/etc/fstab中删除相应条目。
3. 删除挂载点目录:rmdir /mountpoint
做了个分区,那么我不想存放在这个分区上的内容被其他人看到肿么办?
加密嘛,下面说一说加密那么事。
加密:
LUKS(linux统一密钥设置)是标准的设备加密格式,其可以对分区或卷进行加密。必须先对加密的卷或分区进行解密,才能挂载其中的文件系统,现在我就把刚才创建的那个sda5加密试试吧。
[root@server1 /]# cryptsetup luksFormat /dev/sda5
WARNING!
========
This will overwrite data on /dev/sda5 irrevocably.
Are you sure? (Type uppercase yes): YES #注意这里一定要大写的YES
Enter LUKS passphrase: #设置密码,是不显示的
Verify passphrase: #确认一下
[root@server1 /]# cryptsetup luksOpen /dev/sda5 test #打开加密的分区,形成映射test,test这个名字可以任意。
Enter passphrase for /dev/sda5:
[root@server1 /]# ll /dev/mapper/ #查看一下设备信息
total 0
crw-rw----. 1 root root 10, 58 Nov 22 2012 control
lrwxrwxrwx. 1 root root 7 Nov 22 12:55 test -> ../dm-2 #看test映射出来了。
lrwxrwxrwx. 1 root root 7 Nov 22 12:39 vg0-LogVol01 -> ../dm-1
lrwxrwxrwx. 1 root root 7 Nov 22 12:39 vg0-lv0 -> ../dm-0
[root@server1 /]# mkfs.ext4 /dev/mapper/test #格式化吧,注意了,linux对分区加密,是底层的,在格式化之前加密的。
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25168 inodes, 100352 blocks
5017 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1936 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@server1 /]# mount /dev/mapper/test /mnt/ #挂载到/mnt/下
[root@server1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg0-lv0 4031680 2538324 1288556 67% /
tmpfs 376700 260 376440 1% /dev/shm
/dev/sda1 198337 25770 162327 14% /boot
/dev/mapper/vg0-LogVol01
1003864 17780 935092 2% /home
/dev/mapper/test 97167 5646 86504 7% /mnt
[root@server1 /]# cd /mnt/
[root@server1 tmp]# ls
lost+found
[root@server1 tmp]# touch file{1,2,3}
[root@server1 tmp]# ls
file1 file2 file3 lost+found
[root@server1 /]# umount /dev/mapper/test #这里要卸载了,我写入了数据之后暂时不用了,当然要卸载,防止数据泄露
[root@server1 /]# cryptsetup luksClose test #luksClose 来关闭分区,
[root@server1 /]# ll /dev/mapper/ #这时在设备目录中已经没有之前的test映射了。
total 0
crw-rw----. 1 root root 10, 58 Nov 22 2012 control
lrwxrwxrwx. 1 root root 7 Nov 22 12:39 vg0-LogVol01 -> ../dm-1
lrwxrwxrwx. 1 root root 7 Nov 22 12:39 vg0-lv0 -> ../dm-0
到此为止,设备加密,写入数据已经完毕,下次再使用的时候怎么办?继续打开就好了
[root@server1 /]# cryptsetup luksOpen /dev/sda5 disk #注意,这次我的映射名师disk了,不过这不妨碍,前边说过,映射名字随便起。因为这个分区里已经有数据了,所以再使用就直接挂载就行了,可不要又去执行格式化。。。(这种事我身边的确发生过。。)
总结:
分区:
fdisk -cu /dev/sda partx -d /dev/sda # 刷新一下 partx -a /dev/sda # 添加新分区
分区加密实际上就下边这四条命令:
cryptsetup luksFormat /dev/sda5
cryptsetup luksOpen /dev/sda5 test
mkfs.ext4 /dev/mapper/test
mount /dev/mapper/test /tmp/
永久挂载加密的分区
1) /etc/crypttab包含要在系统启动期间解锁的设备列表。
name¹ /dev/vdaN² /path/to/password/file³
/etc/crypttab 在每一行列出一个设备,使用空格分隔字段:
1 命令将用于设备的设备映射程序
2 基础“已锁定”设备
3 用于解锁设备的密码文件。如果该字段留空(或设置为none),在启动期间,系统
将提示用户输入解密密码
2) 在/etc/fstab中创建类似于以下内容的条目:
/dev/mapper/name /secret ext4 defaults 1 2
3) 创建包括密码的密钥文件。确保文件归root所有并且模式为600.使用以下命
令添加LUKS的密钥。
# cryptsetup luksAddKey /dev/vdaN /path/to/password/file
示例:
vi /etc/crypttab test /dev/vda5 /root/passwd
vi /etc/fstab /dev/mapper/test /secret ext4 defaults 1 2
#echo sunshine > /root/passwd #chrown root /root/passwd #chmod 600 /root/passwd #cryptsetup luksAddkey /dev/sda5 /root/passwd nter any passphrase:
重启,搞定