时间:2018-05-25
姓名:魏文应
一、磁盘结构组成
硬盘主要包括:盘片、磁头、盘片主轴、控制电机马达、磁头控制器、数据转换器、接口、缓存等几个部份:
磁头: 磁盘技术的关键,最昂贵的部件,负责磁盘的读写。
磁道: 当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。
扇区: 磁道等分为若干弧段,一个弧段就是一个扇区。扇区大小为512字节。
柱面: 各磁盘相同位置上,磁道的集合。比如一个磁盘上有两个盘片,两个盘片上0号磁道加起来,就叫一个柱面。
块(block): 操作系统每次只读取一个扇区,这样效率太低。而是一次性连续读取多个扇区,即 一次性读取一个"块"(block)。这种由多个扇区组成的"块",是 文件存取的最小单位。"块"的大小,最常见的是1KB,即2个扇区组成一个 block。4K =8扇区。
二、Linux 文件系统结构
Linux文件系统由三部分构成:文件名、inode节点、block(真正存数据的地方)。
查看inode节点信息
查看某个文件的inode节点信息 :
stat test.txt
。查看每个分区inode节点使用情况:
df -i
。查看某个文件的inode节点号:
ls -i test.txt
。
三、Linux中的硬链接和软链接
文件是通过inode来索引的。
硬链接: 如下图:
- 目录下有4个名为a.txt、b.txt、c.txt、d.txt的文件,对应4个inode节点。
- 它们都指向了同一个文件的存储地址。
- 修改a.txt、b.txt、c.txt、d.txt中的任何一个,都修改的是同一个存储地址,所以这4文件内容是同步的、一样的。
- 当删除其中一个文件名,比如
rm a.txt
,只是删除了inode1,我们还能通过inode2、inode3或者inode4索引到文件。 - 删除所有inode节点,虽然文件还在,但文件系统在没有inode索引的情况下,是找不到文件的。这就是删除文件,文件系统就认为这部分磁盘扇区是空闲的。
软链接: 认识了硬链接,软链接也很好理解。如下图:
如果 inode2 指向 inode1,这时 b.txt 就是 a.txt 的软链接。
通过 b.txt 打开文件,是 inode2 通过 inode1,才能索引到了文件的存储位置。
如果删除 a.txt 这个文件:
rm a.txt
,inode2 就找到不到 inode1,当然也不能找到文件了。那么文件就相当于被删除了。这时如果打开b.txt这个文件,就会提示文件找不到。这就是在windows系统中,删除源文件后,点击快捷键,经常提示快捷键找不到文件的原因。
硬链接相关命令操作:
- 给a.txt文件创建硬链接b.txt :
ln a.txt b.txt
。 - 硬链接不允许指向目录。
- 硬链接不允许跨分区创建。
软连接相关操作:
- 给a.txt文件创建软链接b.txt :
ln -s a.txt b.txt
。 - 软链接时通过目录和文件名来索引的。
- 软链接可以指向目录。
- 软链接可以跨分区,源文件写为绝对路径。
四、磁盘加密
创建加密磁盘
添加一个分区(我这里是/dev/sdb7)。如果你不会添加分区操作,请参考《1-13-硬盘介绍和磁盘管理》 。
给分区(我这里是/dev/sdb7)加密:
cryptsetup luksFormat /dev/sdb7
(输入密码时,要满足复杂度要求,不能是12345678这种简单的密码,比如我的密码是weiwenying123
) :对分区进行映射:
cryptsetup luksOpen /dev/sdb7 wwy_disk
:对分区进行格式化:
mkfs.ext4 /dev/mapper/wwy_disk
(wwy_disk根据你起的名称而定)。创建挂载点:
mkdir /wwy_disk
。挂载:
mount /dev/mapper/wwy_disk /wwy_disk
:
加密磁盘开机自动挂载
因为这个磁盘是加密的,所以自动挂载时,需要创建一个密钥文件。
创建存储密钥的文件(你找个地方存):
touch /root/tmp/wwy_passwd
。指定生成密钥文件 :
cryptsetup luksAddKey /dev/sdb7 /root/tmp/wwy_passwd
。-
磁盘加密配置列表中,加入我们的加密磁盘,打开
/etc/crypttab
文件,加入下面内容:wwy_disk /dev/sdb7 /root/tmp/wwy_passwd
-
在文件系统配置文件中,加入我们的磁盘
vim /etc/fstab
:/dev/mapper/wwy_disk /wwy_disk ext4 defaults 0 0
关闭映射
- 卸载挂载点:
umount /wwy_disk/
。 - 关闭映射:
cryptsetup luksClose wwy_disk
。
其它操作:
如果你想开机手动输入磁盘加密密码,在 /etc/crypttab
文件中就不要加入密钥文件路径:
wwy_disk /dev/sdb7
重启操作系统以后,会提示你输入密码:
生成密钥文件: 生成密钥文件时,我们不用这个操作 cryptsetup luksAddKey /dev/sdb7 /root/tmp/wwy_passwd
,也是可以的,但是要修改wwy_passwd 权限为644:
chmod 644 /root/tmp/wwy_passwd