####linux系统中的磁盘管理###
1.本地存储设备的识别
fdisk -l ##查看真实存在的设备
cat /proc/partition ##系统能够识别的设备,系统能识别不代表能够使用
blkid ##系统可使用的设备
df ##系统正在挂载的设备
2.设备的挂载和卸载
(1)设备的名称
/dev/xdx ## /dev/hd0 /dev/hd1 /dev/sda /dev/sdb
注意:hd是并口硬盘 sd是串口硬盘
/dev/sr0 ##光驱
/dev/mapper/* ##虚拟设备
(2)设备的挂载
mount 挂载 把你的设备插到目录上,让目录可以看到设备里的东西
mount 设备 挂载点
mount /dev/sdb1 /mnt ##挂载sdb1到mnt
umount /mnt | /dev/sdb1 ##卸载
mount -o ro /dev/sdb1 /mnt ##只读挂载,就不能写入文件等
mount ##查看挂载信息
mount -o remount,rw /dev/sdb1 | /mnt ##重新读写挂载
3.解决设备正忙情况
[root@localhost ~]# umount /mnt
umount : /mnt : target is basy . ##有程序在使用此设备
(In some cases useful info about processes that the device is found by lsof or fuser(1))
方法一:
Fuser -kvm /mnt ##查看并结束,但是不会卸载
umount /mnt
方法二:
Lsof /mnt ##会出现正在使用该进程的pid
Kill -9 进程的pid
umount /mnt
4.给设备安装文件系统
=================================================================================================
新装的虚拟机,想要添加一个新的虚拟硬盘。
在虚拟机处,打开以下界面,点击 add 添加新的虚拟磁盘,如下图:
然后,如下图所示,点击 Storage —> 选择device type为Disk device —> bus type选择为 virtio —> 点击finish,添加成功
fdisk -l 查看是否有新的磁盘添加显示,如果没有显示新磁盘信息,那么需要手动同步分区表
=====================================================================================================================
mount /dev/vdb1 /mnt 刚开始两个不能挂载,/dev/vdb1是硬件 /mnt是软件 需要在硬件上面安装软件才能和软件沟通
需要安装filesystem这个文件系统,要格式化
ext3 rhel5及之前的版本 (理论值)最多支持32TB的文件系统和2t文件f,实际2tb文件系统,16G文件
ext4 rhel6 1EB(1024TB) 16TB
xfs rhel7 18EB 9eb 7G/s 写入速度4G/s (设备默认是xfs)
mkfs . xfs /dev/vdb1 ##格式化vdb1为xfs
mount /dev/vdb1 /mnt ##这样的挂载是临时的
上面的挂载是临时的,当reboot之后,系统自动执行umount。如果想要永久挂载的话,就要写进文件里/etc/fstab 这个文件在开机的时候,系统会自动读取文件中的挂载策略并且挂载(到相应的地方)
vim /etc/fstab ##文件写错的话系统就起不来了
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
##这一步执行完以后用df命令,发现没有挂载
mount -a ##读取那个文件中的挂载策略,使没有生效的策略立即生效,验证是否正确(man 5 fstab)
df ##再此df就会出现挂载
注意:rc.local这个是脚本,执行的是命令。fstab是策略,系统自动识别,开始的时间比rc.local开始的早。
5.fstab的报错
vim /etc/fstab
/dev/vdb1 /mnt
defaults 0 0 ##正确的写法
/dev/vdb1 /mnt
defa 0 0 ##错误的写法
reboot ##系统重启就会起不来
解决方法:
先输入一个root的密码,上面会有报错的信息,
在无图形的界面输入vim
/etc/fstab
将错误的这行命令用“#”注释起来,wq退出保存
reboot(系统就能重启来了)
partprobe 手动同步分区表
当电脑某一个设备正在被系统使用的时候,他自动读取分区表就会失败,所以就要我们手动
6.swap分区管理
Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中
(1)swap分区的建立
(设定分区并设定分区标签为swap)
将/dev/vdb6变成swap的
fdisk /dev/vdb
t ##修改分区标签
数字 ##修改第几个的标签
l ##列出所有代码
82 ##修改为swap
wq ##退出保存
partprobe ##同步分区表
mkswap /dev/vdb6 ##对设备进行swap格式化
swapon -a /dev/vdb6 ##激活
swapon -s ##查看是否激活
注意:这个也是临时的,如果想要永久激活,还是要写入 /dev/fstab
vim /etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb6 swap swap defaults 0 0
(2)swap的删除
vim /etc/fstab
#/dev/vdb6 swap
swap defaults 0 0 ##将这行错误的删除或者注释起来
swapoff /dev/vdb6 ##删除
swapon -s ##查看
7.用户配额设定(分配额度,最大能使用额度)
配额是针对分区(比方:student用户在某一个设备的配额是定的,在别的不一定,如果配额是针对用户的话,那就代表在电脑里只能编写定额的文件)
mount -o usrquota /dev/vdb7
/student
chmod 777 /student ##让用户也有写入权限
edquota -u student ##设定所有人的配额,在开机的时候会失效,因为挂载也是临时的
永久挂载:
vim /etc/fstab
/dev/vdb7 /student
xfs defaults,usrquota(参数)
0 0
测试:(用设定的用户测)
dd if=/dev/zero
of=/student/studentfile bs=1M count=200
du -s /student
示例:
重新建立一个磁盘分区/dev/vdb7
mkdir /student
chmod 777 /student
ls -ld /student
mount /dev/vdb7 /student
ls -ld /student ##此时权限改成了755
注意:先挂设备再改目录权限,因为目录权限本身是记录在设备里的,每挂载之前和挂载之后度的设备不一样,刚开始读的是/dev/vda1,挂载后读的是/dev/vdb7.
8.设备的加密 luks(基于文件系统的加密)
cryptsetup luksFormat /dev/vdb8 ##加密格式化
##YES要大写
cryptsetup open /dev/vdb8 hello(名字任意的)
mkfs.xfs /dev/mapper/hello ##格式化 mapper表示虚拟设备
mount /dev/mapper/hello /mnt
touch /mnt/file{1..6}
umount /mnt
cryptsetup close hello
查看:
cryptsetup open /dev/vdb8 hello ##需要密码
mount /dev/mapper/hello /mnt