Linux系统中的磁盘系统分区管理
1.对本地存储设备的识别:
fdisk -l 命令(系统中真实存在的设备)
如下:(查看真实存在的设备)【存在两块硬盘,vda使用了,vdb还没有使用)】
其中 v代表:virt(虚拟的意思) ,d表示 disk(硬盘) ,a表示 代号:1 的意思 /dev/sdb(虚拟硬盘2) ,dev/sda(虚拟硬盘1) 注:真机里的话一般是/dev/sda 其中s表示sata ;
cat /proc/partition (查看系统所能识别到的设备)
blkid (查看系统可使用的设备):
df (系统正在挂载的东西):(查看u盘挂载就可以使用df 命令)
以真机插入u盘为例:(红框内的 便是我的u盘设备为 /dev/sdb1 挂载到了 /run/media/kiosk/ASUKA下)
2.对fdisk命令的使用:
用fdisk建立新的分区,或者删除分区等:
因为本虚拟机里还有一块没有使用的硬盘vdb,所以我们对vdb进行实验操作:
fdisk /dev/vdb #对vdb硬盘进行操作
弹出如下界面:(可以看到此时需要我们输入指令)(下面提示到输入m查看帮助)
完整的帮助如下:(常用的,n表示添加分区,t更改类型,d删除分区,p查看分区列表,wq退出并保存分区信息,q只退出不保存分区信息)
我们需要给vdb新增一个分区:输入n:
其中p 代表 primary(主分区的意思),e代表extended(拓展分区的意思),系统默认是建立主分区:
建立主分区:(从上往下,第一个为分区编号,我们默认执行,First sector 也默认执行,Last sector..给分区空间大小,我们输出+100M表示给100M的空间:)
最后wq 退出保存 表示新增主分区成功:
用p查看分区情况:(刚才新增的出现了):
并且也可以被系统识别到:(多了我们新增的主分区vdb1):
如果我们想删除vdb1:(可以看到默认只有一个分区所以删除的就是vdb1,当还有vdb2,vdb3时需要输出代号)
可以看到我们一口气新增了三个主分区:(vdb1,vdb2.vdb3)
此时删除就需要输入代号了:(dvb2被删除了)
注:总共最多可以有4个主分区!(总共64字节,每个分区可用16字节)
但是4个主分区存在分区不够,或者电脑空间利用不充分的缺点:
所以我们引入了拓展分区:(extended):
当已经有了三个主分区的时候,系统默认会推荐你添加拓展分区:
添加成功(并且用完了所有空间)
另外:在拓展分区里我们还可以新增新的分区:
新增成功:(vdb5)
3.如何给设备安装文件系统(格式化设备):(使我们建立的分区可以正常使用)
正常情况下不进行文件系统的安装是无法使用设备的,常用的文件系统有很多比如:
ext3,ext4,xfs,其中 xfs是最新最稳定最强大的,我们选用它!
mkfs.xfs(文件系统,也可以还未ext3,ext4) + /dev/vdb1(格式化硬盘设备)
可以看到vdb1可以使用了:
4.设备的挂载和卸载:
/dev/xdx 类型有: ##/dev/hd0 /dev/hd1 /dev/sda /dev/sdb /dec/sda1 /dev/sda2
/dev/sr0 #光驱
/dev/mapper/* #虚拟设备
/sda #系统第一块串口硬盘,a代表第一块
/cdrom,/dev/sr0 #代表光驱
/hd0 #系统闭口硬盘
挂载:
mount 设备 挂载点
mount /dev/vdb1 /mnt
将/dev/vdb1挂载到/mnt上去:
卸载:
umount /mnt | /dev/vdb1:
mount -o ro /dev/vdb1 /mnt 只读挂载(设备还没有挂载的情况下使用)
mount 查看挂载信息:(东西很多,最底下可以看到关于 设备/dev/vdb1的信息)
图中括号中的第一个 ro 表示只读状态!
如何变为读写:
执行:mount -o remount,rw /dev/vdb1 | /mnt #重新挂载,并且可以读写!
执行完 mount后查看结果:
变为了 rw表示更改成功:
上面的挂载都是临时挂载:如何永久挂载呢:
vim /etc/fstab #需要编写配置文件
格式如下:
设备 挂载点 文件类型(xfs) 挂载参数(defaults) 0(是否备份) 0(是否检测)
#卸载设备,但是报错正忙的解决办法:(一般是由于重复挂载在一个挂载点导致的某个程序正在使用设备)
a: fuser -vm + 挂载点 eg: /mnt #查看影响我们正常卸载设备的程序信息
fuser -kvm+挂载点 eg:/mnt #直接结束挂在/mnt下的进程,
然后 umount /mnt 。
b: lsof /mnt #查看占用/mnt的进程信息
kill -9 进程号 结束进程,
然后 umount /mnt 。
5.swap分区的建立和删除:
(1)建立swap分区:
fdisk /dev/vdb:(输入t,修改分区表的id ,可以看到82为swap分区)
输入82:(可以看到修改成功了)
接下来:mkswap /dev/vdb5 #把vdb5用作swap分区:
然后:**vdb5为swap分区,并显示swap分区:
如果想要永久设置swap分区,还需要在 /etc/fstab下编写:
格式如下:
/dev/vdb5 swap swap defaults 0 0
如何卸载一个swap分区:
注:如果已经将swap分区写入到fstab文件变为永久swap分区,则需要先将里面的swap挂载信息删除掉,然后执行下面的操作
swapoff 设备 表示:卸载 设备的swap分区,swapon -s查看分区;
如果还想让vdb5恢复最初设置:
然后对它进行格式化,再挂载到某个挂载点即可:(这里需要加-f 强制操作):(因为之前文件类型变为了swap)
最后 : 配额:
我们总会遇到资源分配不均的问题:
所以我们需要给每个用户公平的资源:
当好几个用户共用一个目录时,需要平均分配空间:
实验:我们新建一个根下的messi目录:
将vdb5挂载到/messi上:
mount查看 vdb1的配额功能是否开启:noquota 为未开启;
开启noquota:
开启
查看
并赋予/messi满权限方便实验:
再次查看:配额开启成功
设置用户配额大小:
改 hard 部分: 比如 改大小为20480(即设定每一个用户只能上传20M大小的文件超过)
如果超过20M可以看到配超出限额了: