(15) 主分区,swap分区,磁盘阵列
系统分区
一、MBR信息
1.MBR主引导分区 446字节
2.MPT主分区表 64字节
3.硬盘有效标示“55aa” 2字节
4.分区大小为16字节,故有4个分区
其中3个主分区,1个扩展分区,扩展分区中成为逻辑分区
5.注意:MBR分区最大只能分2TB,全部可识别的分区总数为16,可用的为14(其中 前面分几个主分区,占几个主分区扩展分区占一个)
命令为fdisk /dev/vdb 打开分区界面
主分区1
主分区3
下图为扩展分区
下图为逻辑分区
分区列表
二、系统设备类型
1./dev/xdxn
x:硬盘类型(s:sata硬盘 h:串口硬盘 v:虚拟硬盘)
x:a..z,硬盘所在个数
n:1..16,分区所在个数
2./dev/cdrom 系统光驱
/dev/mapper/files 虚拟硬盘的文件
三、硬盘分区
1.分区命令
d delete a partition 删除分区
l list known partition types 列出
m print this menu 帮助说明
n add a new partition 新增分区
p print the partition table 显示分区
q quit without saving changes 退出不保存
t change a partition's system id 修改分区id
w write table to disk and exit 将当前操作写入分区表
2.在硬盘中进行分区管理
进入硬盘分区 fdisk /dev/vdb
[[email protected] ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
3.查看系统中真实存在的设备
fdisk -l
4.查看系统可识别分区
cat /proc/partitions
[[email protected] ~]# cat /proc/partitions
major minor blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 204800 vdb1
253 18 204800 vdb2
253 19 204800 vdb3
253 20 1 vdb4
253 21 102400 vdb5
5.查看系统可用分区
[[email protected] ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
1.文件系统类型
ext4 支持1EB(1EB=1024PB 1PB=1024TB)的文件系统和单个16TB的文件
linux 6的标准文件系统
ext2 支持最大分区4TB,最大文件2GB
适合小型存储设备
vfat 支持包括一系列相关文件系统(VFAT/FAT16/FAT32),针对较旧版本的Microsoft Windows开发
xfs 支持最大分区9EB
linux 7的标准文件系统,数据完全、性能稳定、扩展性强(8E-1b),传输效率(7G/s)
2.格式化分区
mkfs.xfs /dev/vdb5 ##文件系统类型xfs
注意:可用mkfs -t xfs /dev/vdb5进行格式化
[[email protected] ~]# mkfs.xfs /dev/vdb5
meta-data=/dev/vdb5 isize=256 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb5: UUID="c412c527-b0af-487b-817f-a6078c757ede" TYPE="xfs"
普通挂载
mount /dev/vdb5 /mnt
参数挂载
mount -o ro /dev/vdb5 /mnt
挂载后修改参数
mount -o remount,rw /dev/vdb5 /mnt (不卸载直接修改/dev/vdb5 /mnt/的rw权限)
当/mnt被占用时,不能正常卸载
[[email protected] ~]# umount /mnt
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
可用lsof(8)查看不能卸载原因
[[email protected] ~]# lsof /mnt (lfos查看不能卸载原因)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 4569 root 3u REG 253,21 4096 131 /mnt/.hello.swp
或者用fuser(1)查看
[[email protected] ~]# fuser -vmK /mnt (vmk意思为扫描显示并关闭异常进程)
vmK: unknown signal; fuser -l lists signals.
[[email protected] ~]# fuser -vmk /mnt
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 4639 F.... vim
[2]+ Killed vim /mnt/hello
五、gpt分区
1.GUID磁碟分割表
GUID Partition Table:全盘唯一标识磁盘分区表
特性对比:
MBR: 3个主分区,1个扩展分区(下含逻辑分区),最多识别16个
GPT:128个分区,管理硬盘大小18EB
ext3:最多支持32TB
ext4:最多支持1EB
xfs:容量8EB-1byte
2.修改前准备
(例/dev/vdb)
把要分区的硬盘停止(卸载所有设备)将该磁盘格式化 (有三种磁盘格式种类) 1— mkfs.ext3 2—mkfs.ext4 3—mkfs.xfs
3.修改MBR分区改为GPT分区
[[email protected] ~]# parted /dev/vdb
(parted) mklabel
New disk label type?
aix amiga bsd dvh gpt loop mac msdos pc98 sun
六、Swap分区
1.swapon -s ##查看系统的swap分区信息
[[email protected] ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 1023996 0 -1
2.新建swap分区
fdisk /dev/vdb
先建立P分区
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2050047 1024000 83 Linux
修改分区类型
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L查看所有分区类型的id(82)
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2050047 1024000 82 Linux swap / Solaris
[[email protected] ~]# mkswap /dev/vdb1
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=006ca68c-ab1d-46d6-a454-8bca41b33c26
[[email protected] ~]# swapon -a /dev/vdb1 (-a执行)
[[email protected] ~]# swapon -s /dev/vdb1(-s列出)
Filename Type Size Used Priority
/dev/vdb1 partition 1023996 0 -1
5.修改配置文件,永久设置swap分区 /etc/fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vdb1 swap swap defaults 0 0
defaults 挂载参数,默认 0 不备份 0 不检测
修改后 swapon -a 检查报错
七、分区配额
1.挂载时设置配额参数
(如果没有vdb2的话要先建 fdisk /dev/vdb n p 2 +100M , p查看新建分区是否成功,wq保存退出)
partprobe (分区同步)
mkfs.xfs /dev/vdb2 (新建分区格式化)
mount -o usrquota /dev/vdb2 /mnt(挂载)
2.进行配额设置
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb2 10240 0 10240 1 0 0
blocks 文件已占用分区大小 soft 文件超出配额大小,报警
hard 文件不能超出配额大小 inodes 文件个数
soft文件目录个数超额报警 hard文件目录个数不能超额
此处hard设定为10M (hard 文件不能超出配额大小)
注意:xfs文件系统默认配额功能开启,ext4之前的文件系统需要quotan -n /dev/vdb 命令**
3.切换到student用户实验
配额正常时
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=6
(从/dev/zero of截取6快数据,每块数据大小为1M,放到/mnt/studentfile这里)
6+0 records in6+0 records out
6291456 bytes (6.3 MB) copied, 0.00311684 s, 2.0 GB/s
注意:如果截取不成功报错,修改权限 chmod 777 /mnt/
(因hard设定为10M,文件不能超出设定配额10M,此截取总量为60M,在设定值范围内,所以截取成功)
超出配置时,只能截取配额大小的容量
dd: error writing ‘/mnt/studentfile’: Disk quota exceeded
11+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00603514 s, 1.7 GB/s
(因hard设定为10M,文件不能超出设定配额10M,此截取总量为110M,超出设定值范围内,所以截取不成功)
注意:该配额设置是临时的,若需要永久修改
vim /etc/fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1/dev/vdb1 xfs /mnt defaults,usrquota 0 0
八、还原设备
1.卸载所有挂载点
umount /mnt (卸载)
swapoff /dev/vdb1 (关闭swap分区)
2.查看是否全部移除
df
swapon -s (因上步以关闭swap分区,所有-s显示没有内容)
3.修改配置文件,还原设置 /etc/fstab4.删除分区
fdisk /dev/vdb
Command (m for help): d
Partition number (1,2, default 2):
Partition 2 is deleted
九、磁盘加密
1.建立分区
fdisk /dev/vdb
2.设置磁盘密码
[[email protected] ~]# cryptsetup luksFormat /dev/vdb1
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): YES
后输入密码,密码位数必须大于8位
注意,注意:YES是大写,大写,大写
3.打开磁盘文件
Enter passphrase for /dev/vdb1: 需要输入密码
[[email protected] ~]# mkfs.xfs /dev/mapper/test
meta-data=/dev/mapper/test isize=256 agcount=4, agsize=6272 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=25088, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
mount /dev/mapper/test /mnt
[[email protected] ~]# ls /mnt
file1 file2 file3 file4 file5
[[email protected] ~]# umount /mnt
[[email protected] ~]# ls /mnt
[[email protected] ~]# cryptsetup close test
[[email protected] ~]# mount /dev/mapper/test /mnt
mount: special device /dev/mapper/test does not exist
注意:关闭之后,若再次挂载,需重新打开、建立磁盘文件
建立密码文件
vim /root/diskpass (输入之前设置密码后自动读取密码)
修改文件权限,设置root只读
chmod 600 /root/diskpass
修改文件,使磁盘识别密码(test为磁盘文件名)
vim /etc/crypttab
test /dev/vdb1 /root/diskpass
磁盘加密时读取密码文件
cryptsetup luksAddKey /dev/vdb1 /root/diskpass
修改开机自启动文件
/dev/mapper/test /mnt xfs defaults 0 0
[[email protected] ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3808664 6665236 37% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/test 96940 5176 91764 6% /mnt
注意:若磁盘不能识别密码,则不能正常开机
8.取消磁盘加密
卸载 umount /mnt
关闭磁盘文件 cryptsetup close test
格式化磁盘 ##磁盘已加密,须强制删除
[[email protected] ~]# mkfs.xfs /dev/vdb1
mkfs.xfs: /dev/vdb1 appears to contain an existing filesystem (crypto_LUKS).
mkfs.xfs: Use the -f option to force overwrite.
[[email protected] ~]# mkfs.xfs /dev/vdb1 -f
修改配置文件,还原设置
vim /etc/crypttab
vim /etc/fstab
密码文件删除(可做可不做)
rm -fr /root/diskpass
十、磁盘阵列管理
0:1/2 + 1/2 写入 1:1+1 读取 5:0 + 1 至少3块磁盘,如2个0,1个1
1.建立3个分区,类型改为raid
Command (m for help): t
Partition number (1-5, default 5): 2
Hex code (type L to list all codes): fd (改完后wq保存退出)
**建完分区改完类型后要partprobe分区同步后才可进行下一步
2、管理raid磁盘
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{2,3,5}-C 新建 -a 表示若目录/dev/md0不存在,建立新的
-l 磁盘等级 -n 使用磁盘个数 -x 闲置磁盘个数
mdadm -D /dev/md0
查看信息显示vdb2,vdb3处于工作状态 ,vdb5闲置
0 253 18 0 active sync /dev/vdb2
1 253 19 1 active sync /dev/vdb3
2 253 21 - spare /dev/vdb5
或者 cat /proc/mdstat
显示vdb2闲置,vdb5,vdb3处于工作状态
md0 : active raid1 vdb2[3](S) vdb5[2] vdb3[1]
1048000 blocks super 1.2 [2/2] [UU]
mdadm /dev/md0 -f /dev/vdb2
mdadm -D /dev/md0 (查看谁被干掉,/dev/vdb2/被干掉)
Number Major Minor RaidDevice State
2 253 21 0 active sync /dev/vdb51 253 19 1 active sync /dev/vdb3
0 253 18 - faulty /dev/vdb2
[[email protected] ~]# mdadm /dev/md0 -r /dev/vdb2
mdadm: hot removed /dev/vdb2 from /dev/md0
6.添加新的raid磁盘
[[email protected] ~]# mdadm /dev/md0 -a /dev/vdb2
mdadm: added /dev/vdb2
7.格式化磁盘阵列,挂载
mkfs.xfs /dev/md0
mount /dev/md0 /mnt
8.关闭raid磁盘,停止使用
mdadm -S /dev/md0
删除分区
同步分区表 partprobe
建议:做完实验后重启,清除所有缓存磁盘