linux系统中的磁盘分区
一.本地存储设备的识别
--fdisk -l ##真实存在的设备
--cat /proc/partitions ##系统识别的设备
--blkid ##系统可使用的设备
--df ##系统正在挂载的设备
二.设备的挂载和卸载
1.设备名称
如:/dev/xdx
/dev/hd0 /dev/hd1 /dev/sda /dev/sbd /dev/sda /dev/sdb /dev/sda1 /dev/sda1 ....
/dev/sr0 ##光驱
/dev/mapper/* ##虚拟设备
2.mount 设备 挂载的目录
dev/sdb1是U盘,由于U盘只在真机上显示,所以,此实验在真机上进行,首先,先卸载u盘,确保下列实验正常执行
--df
--umount /dev/sdb1
--df
实验:
先创建一个hetoto目录
--mkdir /hetoto
--mount /sev/sdb1 /hetoto ##将sdb1挂载到hetoto
--cd /hetoto ##可以查看u盘的内容
文件中,显示的文件全是问号的原因是因为文件名中包含有中文字符,编码错误所以显示为问号:
--mount ##用mount查看挂载信息
“注意”:上图中,u盘设备sdb1是读写挂载,所以我们可以在对u盘进行读写,若此时是只读挂载,我们是不能在u盘中写入文件的。在读写挂载的情况下,可以删除u盘中的文件/目录,也可以新建文件/目录。
如何改成只读挂载呢?
执行下列命令:
--umount /hetoto 或者/dev/sdb1 ##卸载
--mount -o ro /dev/sdb1 /hetoto ##只读挂载
--mount ##查看挂载信息
注:此时是只读挂载,我们是不能在u盘中写入文件的。
在不用卸载的情况下,也可重新设置成读写挂载
--mount -o remount,rw /dev/sdb1 或者/hetoto ##重新读写挂载
--mount ##查看挂载信息
3. 解决设备正忙情况(u盘设备正忙,是因为在别的终端打开了u盘,或对u盘执行了某些操作,比如进入u盘)
打开另一个终端,执行umount /hetoto,提示设备正忙
有以下两种方法
方法1:
--fuser -kvm /hetoto
--umount /hetoto
方法2:
--lsof /hetoto
--kill -9 29433(PID)
--umount /hetoto
三.建立分区
分区包含两部分:主分区,扩展分区,逻辑分区在扩展分区里面
此实验在server虚拟机操作:
1.
fdisk -l :查看
fdisk /dev/vdb ##创建分区
输入m可以查看参数类型
2.
n : 新建
p : 主分区
: 分区开始
默认值 ##回车
默认值 ##回车
+100M : 分区大小
p : 显示信息
wq :退出保存
3.划分完成后,可以查看当前系统可以时别的分区:
--cat /proc/partitions
--blkid ##此时在系统的可用设备中,不显示/dev/vdb1
4.对新分区添加文件系统
此时/dev/sdb1并不可用,这是因为没有给新划分的分区添加文件系统,当前可以使用的文件系统有:ext4、ext2、vfat、xfs,相比较二言,xfs的性能稳定,扩展性强,并且文件传输速率高,是目前的主流文件系统,因此,选择给新分区添加文件系统类型为xfs:
--mkfs.xfs /dev/vdb1 : 格式化或者叫添加文件系统
--blkid ##此时在系统的可用设备中,显示/dev/vdb1
此时可以将vdb1挂载到/mnt目录下:
--mount /dev/vdb1 /mnt : 挂载
--df ##查看挂载信息,此时,/dev/vdb1可用,且挂载在/mnt目录下
四.设置三个主分区,一个扩展分区
1.设置三个主分区后,要先划分扩展分区
此时,再新建分区2,3,4;对分区4选择扩展分区
由于2,3分区为主分区,添加步骤与上诉方法相同,因此以下展示分区4(扩展分区)的添加:
把所有的空间都给扩展分区
n : 新建
p : 主分区
: 分区开始
##回车
默认值 ##回车
: 分区大小不设置代表剩下的空间都给扩展分区
wq :退出保存
在添加完成后,会出现如下警告,意思是需要重启或者同步分区表才可以使配置生效
2.同步分区表可以使配置生效
--cat /proc/partitions : 查看挂载设备看不见
--partprobe: 手动同步分区表,这样就把分区表同步了
--cat /proc/partitions :这样就可以看到新建的分区
3.添加逻辑分区
n : 新建
##添加逻辑分区5
##默认值,回车
+100M ##逻辑分区分配100M
wq :退出保存
4.然后把所有的分区格式化,之后,才可以挂载!
设备在进行挂载时可以让一个设备挂载到一个目录下,也可以使一个设备挂载到多个目录,但是不能使多个设备挂载到一个目录
--mkdir /mnt{1..4} ##创建挂载目录
--mkfs.xfs /dev/vdb1 : 此分区在上一步已经格式化了
--mkfs.xfs /dev/vdb2 : 格式化或者叫添加文件系统
--mkfs.xfs /dev/vdb3 : 格式化或者叫添加文件系统
--/dev/vdb4 是不用格式化的,形象的说,扩展分区只是一个壳,壳是不需要格式化的,里面的逻辑分区是内容,才需要格式化
--mkfs.xfs /dev/vdb5 : 格式化或者叫添加文件系统
在格式化逻辑分区时,需要先partprobe: 手动同步分区表,这样就把分区表同步了之后,逻辑分区可以格式化,否则,出现如下报错:
--mount /dev/vdb5 /mnt1 ##挂载分区,其他分区依次执行
5.开机自动挂载策略文件
挂载:之前的mount挂载,重启后就会失效,可以在脚本中编写,永久挂载
--vim /etc/fstab :编写
添加: 设备 挂载点 文件 系统类型 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
--mount -a :让脚本文件生效
注意:不同的分区要挂载到不同的目录下
五. swap 分区(在扩展分区中)
1.新建一个swap分区
l ##显示可以更改的标签名
t ##改标签
6 ##分区编号
将标签改为82:82为swap分区的标签
wq ##退出保存
--partprobe: 手动同步分区表
--mkswap /dev/vdb6 格式化
--临时挂载:swapon -a /dev/vdb6
--swapon -s : 查看swap分区是否挂载成功
2.永久挂载,开机不丢失 :
--vim /etc/fstab ##永久添加swap分区
添加/dev/vdb6 swap swap defaults 0 0
swapon -a : 查看文件是否挂载成功,没有报错就是挂载成功
可靠的检测是否挂载成功:
swapoff /dev/vdb6 ##关掉swapon分区
swapon -s : ##此时没有任何内容
swapon -a : ##让挂载文件重新有效
swapon -s : ##查看swap分区是否挂载成功
3.删除swap分区
--先进入vim /etc/fstab
把挂载swap分区的命令删除
--swapoff /dev/vdb5 关掉swapon分区
--swapon -s : 查看swap分区是否关闭成功,没有任何内容,表示关闭成功
--fdisk /dev/vdb ##删除分区(必须先关闭设备,再删除分区),命令d,再输入删除的分区号6
--partprobe ##手动同步分区表
--cat /proc/partitions ##查看分区信息,vdb6的分区信息被删除
六.配额 :分配额度 (针对于设备)
配额是针对设备的容量限制,用户只有在指定设备上被限制使用存储空间的容量
1.新建目录
--mkdir /pub
--cd /
--ls
2.挂载设备,将目录设置为满权限再卸载:
注:一定要先挂载再修改权限
--mount /dev/vdb5 /pub/
--chmod 777 /pub/
--umount /pub/ ##这一步主要是更改pub目录的权限,卸载是为了下一步开启配额做准备,不然显示已经挂载!
3.对设备开启限额
--mount -o usrquota /dev/vdb5 /pub ##对设备开启限额
--mount ##查看挂载信息
4.查看限额是否开启
--quotaon /dev/vdb5 ##查看限额是否开启
5.对用户配额
--edquota -u student ##给student用户设置配额
6.永久挂载
--vim /etc/fstab 设置永久生效文件
测试:
在student用户下进行实验
--su - student
--cd /pub/
截取15M数据,对于用户student来说可以存储:
--dd if=/dev/zero of=/pub/files bs=1M count=15
--du -sh files ##查看files文件大小
但是student想储存22M的数据,就会提示超出配额,实际储存为20M:
--dd if=/dev/zero of=/pub/files bs=1M count=22
--du -sh files ##查看files文件大小
七,磁盘的加密
一,.磁盘的加密
先添加文件系统,再添加加密系统,加密系统被破坏,可以反加密,解密文件,此加密方法不牢靠
先添加加密系统,再添加文件系统,加密系统被破坏,磁盘不能在被访问,luks加密。
cryptsetup --help ##查看此命令的用法及其格式
1,格式化(加密)
--cryptsetup luksFormat /dev/vdb1
此处输入的命令是大写的YES,提示输入的yes在这里输入没有用,这是一个BUG
--输入小写
--输入大写
输入密码:1995westos
再次确认密码:1995westos
此时,挂载,提示此分区被加密
--mount /dev/vdb1 /mnt
mount: unknown filesystem type 'crypto_LUKS
'
如果想要挂载,需要解密
2,解密
--cryptsetup open /dev/vdb1 westos ##,此时需要输入密码,将加密的设备/dev/vdb1打开,并新命名一个设备名,此时的westos为虚拟设备
--ll /dev/mapper ##查看虚拟设备
--mkfs.xfs /dev/mapper/westos ##将设备格式化
--mount /dev/mapper/westos /mnt ##将设备挂载到/mnt目录下
--touch /mnt/file{1..10} ##此时可以在/mnt目录下创建文件
--ls /mnt/ ##此时可以看见创建的文件
--umount /mnt ##卸载/mnt目录
注:卸载之后,在任意机器上,还是可以挂载设备,读取里面的文件,如果不想其他机器挂载此设备,需要进行关闭解密!
举例:
在加密磁盘挂载点/mnt目录下编辑文件
--vim file ##编辑helloworld
--dd if=/dev/vdb1 of=/mnt/file bs=1M count=1 ##截取数据
--hexdump -C /mnt/file ##查看截取的数据,乱码代表文件被加密
非加密磁盘挂载点/pub目录下编辑文件
--vim file ##编辑helloworld
--dd if=/dev/vdb1 of=/mnt/file bs=1M count=1 ##截取数据
--hexdump -C /mnt/file ##查看截取的数据,显示helloworld
3,关闭解密
此步骤之前,必须先卸载umount /mnt,否则,执行关闭解密命令提示设备忙
--cryptsetup close westos ##关闭此设备的解密,用刚才新命名的名字,此时,不能再随意挂载
举例:
[root@localhost pub]# mount /dev/vdb1 /mnt
mount: unknown filesystem type 'crypto_LUKS
'
此时,想在挂载设备,查看文件,再执行解密
--cryptsetup open /dev/vdb1 westos ##将加密的设备/dev/vdb1打开,并新命名一个设备名
--mount /dev/mapper/westos /mnt ##将设备挂载到/mnt目录下
--df
--ls /mnt
此时可以查看设备内容
二,加密设备如何开机自启
--vim /etc/fstab ##添加开机自动挂载,将虚拟设备disk(此前不存在)挂载到/iso目录下
添加:/dev/mapper/disk /iso xfs defaults 0 0
--vim /etc/crypttab ##生成虚拟设备,但是此时的密码文件/root/vdb1pass没有,所以需要创建
添加:disk /dev/vdb1 /root/vdb1pass
虚拟设备名 真实设备 真实设备密码
--vim /root/vdb1pass
添加:1995westos ##添加最开始设置的vdb1的密码
-- chmod 600 /root/vdb1pass ##为了root用户权限最大,因为时密码文件,所以要root权限最大
-- cryptsetup luksAddKey /dev/vdb1 /root/vdb1pass ##使得虚拟设备和密码产生关联
--reboot
--df ##查看是否自动挂载成功
三,删除自动挂载以及加密
1,删除自动挂载
--vim /etc/fstab ##添加开机自动挂载
删除:/dev/mapper/disk /iso xfs defaults 0 0
--vim /etc/crypttab
删除:disk /dev/vdb1 /root/vdb1pass
--umount /iso ##卸载
--df
2,卸载
-- cryptsetup close disk ##关闭虚拟设备disk
--mkfs.xfs /dev/vdb1 -f ##强行删除解密,不加-f删除不了加密