linux系统中的磁盘管理
1.本地存储设备的识别
fdisk -l ##真实存在的设备
cat /proc/partition ##系统识别的设备
blkid ##系统可使用的设备
df ##系统正在挂载的设备
2.设备的挂载和卸载
1.设备名称
/dev/xdx ##/dev/hd0 /dev/hd1 /dev/sda /dev/sdb /dev/sda1 /dev/sda2 /dev/sdb1
/dev/sr0 ##光驱
/dev/mapper/* ##虚拟设备
2.设备的挂载
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 ##重新读写挂载
注意:mount,umount 后都可跟设备或者挂载点,都是可以的
将光驱挂载在/westos目录,df查看是否挂载成功
卸载
如果发现卸载是设备正忙无法卸载
如此图所示,就需要下面的操作来解决
3.解决设备正忙情况
[root@foundation0 ~]# umount /dev/sdb1
umount: /dev/sdb1 target is busy. ##有程序在使用此设备
(In some cases useful info about processes that
the device is found by lsof(8) or fuser(1))
解决方法1
fuser -kvm /dev/sdb1 ##查看并结束/dev/sdb1打开的进程,==此命令执行后所显示的进程已经被结束==
umount /dev/sdb1
解决方法2
所遇情况:
解决方法:
lsof /dev/sdb1 ####lsof 查看/dev/sdb1打开的进程
[root@foundation0 ~]# lsof /dev/sdb1
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 27446 root cwd DIR 8,17 4096 2 /mnt
kill -9 27446 ##结束进程
umount /mnt
3.磁盘分区
1.硬盘0磁道1扇区的512个字节中记录的信息如下
512=446 + 64 + 2
^ ^ ^
mbr(主引导记录) mpt(主分区标) 55aa(硬盘的有效性标实)
硬盘分区标
64
1个分区占用16个字节
1块硬盘上最多可以划分4个主分区
3.分区步骤###
fdisk -l ###查看分区
fdisk /dev/vdb ##
m
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ##删除
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition ##新建
o create a new empty DOS partition table
p print the partition table ##显示分区信息
q quit without saving changes ##退出
s create a new empty Sun disklabel
t change a partition's system id ##修改分区id
u change display/entry units
v verify the partition table
w write table to disk and exit ##保存分区标信息到硬盘
x extra functionality (experts only)
###建立主分区
Command (m for help): n ##新建
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p ##主分区
Partition number (1-4, default 1): ##id用默认
First sector (2048-20971519, default 2048): ##分区起始
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M ##分区大小
Partition 1 of type Linux and of size 500 MiB is set
Command (m for help): p ##显示信息
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xb2cb6457
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
Command (m for help): wq
!!!切记,做完后要wq,不然不会保存
##当系统已经有三个主分区时
此时只能再建立拓展分区
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e ##3个主分区出现要先划分扩展分区
Selected partition 4
First sector (3074048-20971519, default 3074048):
Using default value 3074048
Last sector, +sectors or +size{K,M,G} (3074048-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 8.5 GiB is set
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xb2cb6457
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
/dev/vdb2 1026048 2050047 512000 83 Linux
/dev/vdb3 2050048 3074047 512000 83 Linux
/dev/vdb4 3074048 20971519 8948736 5 Extended
##把所有空间都给E
4.给设备安装文件系统####
ext3 rhel5及之前的版本 最多支持32TB的文件系统和2t文件,实际2tb文件系统,16G文件
ext4 rhel6 1EB 16TB
xfs rhel7 18EB 9eb 7G/s 4G/s
mkfs.xfs /dev/vdb1 ##格式化
若在格式化时出现问题,看看是否建立的分区没能生效
用partprobe使它更新,或者重启电脑
mount /dev/vdb1 /mnt 注:磁盘分区在格式化后才能使用
vim /etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
相当于,永久挂哉这个磁盘分区,用mount进行的挂载,在重启后就失效了
mount -a 激活
操作演示
先df查看挂载的设备,发现/dev/vdb2已经挂载(用mount命令挂载的),umount卸载掉,然后
Mount -a 来激活设置的永久设定,再df查看
5.swap分区管理##
1)swap分区建立
划分分区并设定分区标签未82
mkswap /dev/vdb6 ##格式化,
swapon -a /dev/vdb6
swapon -s
vim /etc/fstab
用途 类型 参数
/dev/vdb6 swap swap defaults 0 0
2)swap分区删除
vim /etc/fstab
先将设置的永久性配置文件删掉
swapoff /dev/vdb6
swapon -s
Swap分区优先级设定
6.配额
配额是针对与分区的。
限制某个分区的大小
mount -o usrquota /dev/vdb7 /public 挂载分区
chmod 777 /public ==要先挂载再给权限==
quotaon -uv /dev/vdb7 加载这个服务,才能识别额度
edquota -u studnet 让这个用户被限制,只改harf的值,是以K为单位
vim /etc/fstab
/dev/vdb7 /public xfs defaults,usrquota 0 0
测试
[student@dns-server ~]$ dd if=/dev/zero of=/public/studentfile bs=1M count=200
我在设置了student最多可截取20M,虽然在操作时,我截取了200M,但显示出来且实际截取的皆为20M
cryptsetup luksFormat /dev/vdb8
blkid查看
cryptsetup open /dev/vdb8 westos
mkfs.xfs /dev/mapper/westos
mount /dev/mapper/westos /mnt/
touch /mnt/file{1..10}
umount /mnt/
cryptsetup close westos
cryptsetup open /dev/vdb8 westos
mount /dev/mapper/westos /mnt/
加密磁盘开机自动挂载
vim /etc/fstab
进入后写入:
/dev/mapper/westos /mnt xfs defaults 0 0
因为磁盘经过加密,挂载时要输入密码,所以只做上面的操作是不够的
vim /etc/crypttab 解密文件
westos /dev/vdb2 /root/westoskey
vim /root/westoskey 把之前设置的密码写进刚设置的目录
2019westos
cryptsetup luksAddKey /dev/vdb8 /root/westoskey 开机读取