1-14-文件系统组成和磁盘加密


时间:2018-05-25 姓名:魏文应


一、磁盘结构组成

硬盘主要包括:盘片、磁头、盘片主轴、控制电机马达、磁头控制器、数据转换器、接口、缓存等几个部份:

  • 1-14-文件系统组成和磁盘加密_第1张图片
    磁盘实物图(图片来源:www.xuegod.cn)
  • 磁头: 磁盘技术的关键,最昂贵的部件,负责磁盘的读写。

  • 磁道: 当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。

  • 扇区: 磁道等分为若干弧段,一个弧段就是一个扇区。扇区大小为512字节。

  • 柱面: 各磁盘相同位置上,磁道的集合。比如一个磁盘上有两个盘片,两个盘片上0号磁道加起来,就叫一个柱面。

  • 1-14-文件系统组成和磁盘加密_第2张图片
    磁盘图(图片来源:www.xuegod.cn)
  • 块(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索引的情况下,是找不到文件的。这就是删除文件,文件系统就认为这部分磁盘扇区是空闲的。
  • 1-14-文件系统组成和磁盘加密_第3张图片
    inode节点索引

软链接: 认识了硬链接,软链接也很好理解。如下图:

  • 如果 inode2 指向 inode1,这时 b.txt 就是 a.txt 的软链接。

  • 通过 b.txt 打开文件,是 inode2 通过 inode1,才能索引到了文件的存储位置。

  • 如果删除 a.txt 这个文件:rm a.txt,inode2 就找到不到 inode1,当然也不能找到文件了。那么文件就相当于被删除了。这时如果打开b.txt这个文件,就会提示文件找不到。这就是在windows系统中,删除源文件后,点击快捷键,经常提示快捷键找不到文件的原因。

  • 1-14-文件系统组成和磁盘加密_第4张图片
    软链接

硬链接相关命令操作:

  • 给a.txt文件创建硬链接b.txt :ln a.txt b.txt
  • 硬链接不允许指向目录。
  • 硬链接不允许跨分区创建。
  • 1-14-文件系统组成和磁盘加密_第5张图片
    创建硬链接情况

软连接相关操作:

  • 给a.txt文件创建软链接b.txt :ln -s a.txt b.txt
  • 软链接时通过目录和文件名来索引的。
  • 软链接可以指向目录。
  • 软链接可以跨分区,源文件写为绝对路径。
  • 1-14-文件系统组成和磁盘加密_第6张图片
    创建软链接情况

四、磁盘加密

创建加密磁盘

  • 添加一个分区(我这里是/dev/sdb7)。如果你不会添加分区操作,请参考《1-13-硬盘介绍和磁盘管理》 。

  • 给分区(我这里是/dev/sdb7)加密:cryptsetup luksFormat /dev/sdb7(输入密码时,要满足复杂度要求,不能是12345678这种简单的密码,比如我的密码是 weiwenying123) :

  • 1-14-文件系统组成和磁盘加密_第7张图片
    磁盘加密
  • 对分区进行映射: cryptsetup luksOpen /dev/sdb7 wwy_disk

  • 1-14-文件系统组成和磁盘加密_第8张图片
    分区映射
  • 对分区进行格式化: mkfs.ext4 /dev/mapper/wwy_disk (wwy_disk根据你起的名称而定)。

  • 创建挂载点: mkdir /wwy_disk

  • 挂载: mount /dev/mapper/wwy_disk /wwy_disk :

  • 1-14-文件系统组成和磁盘加密_第9张图片
    访问加密磁盘

加密磁盘开机自动挂载

因为这个磁盘是加密的,所以自动挂载时,需要创建一个密钥文件。

  • 创建存储密钥的文件(你找个地方存): touch /root/tmp/wwy_passwd

  • 指定生成密钥文件 : cryptsetup luksAddKey /dev/sdb7 /root/tmp/wwy_passwd

  • 磁盘加密配置列表中,加入我们的加密磁盘,打开 /etc/crypttab 文件,加入下面内容:

    wwy_disk /dev/sdb7 /root/tmp/wwy_passwd
    
  • 1-14-文件系统组成和磁盘加密_第10张图片
    创建密钥文件
  • 在文件系统配置文件中,加入我们的磁盘 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

重启操作系统以后,会提示你输入密码:

  • 1-14-文件系统组成和磁盘加密_第11张图片
    提示输入磁盘密码

生成密钥文件: 生成密钥文件时,我们不用这个操作 cryptsetup luksAddKey /dev/sdb7 /root/tmp/wwy_passwd ,也是可以的,但是要修改wwy_passwd 权限为644

chmod 644 /root/tmp/wwy_passwd

你可能感兴趣的:(1-14-文件系统组成和磁盘加密)