1. 磁盘基本概述
1.1 Linux中磁盘命名方式
Linux中磁盘的命名方式与磁盘的接口有关,规则如下:
- 传统IDE接口硬盘:
/dev/hd[a-z]
- SCISI接口硬盘:
/dev/sd[a-z]
- 虚拟化硬盘:
/dev/vd[a-z]
在设备名称的定义规则如下, 其他的分区可以以此类推
系统的第一块SCSI接口的硬盘名称为/dev/sda
系统的第二块SCSI接口的硬盘名称为/dev/sdb
系统中分区由数字编号表示, 1-4留给主分区使用和扩展分区, 逻辑分区从5开始
//第一块磁盘
/dev/sda
//第一块磁盘的第一个分区
/dev/sda1
//第二块磁盘的第一个分区
/dev/sdb1
1.2 MBR与GPT
在使用新磁盘之前,你必须对其进行分区。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择
MBR是Master Boot Record的简称,也就是主引导记录,是位于磁盘最前边的一段引导(Loader)代码,主要用来引导操作系统的加载与启动
特点:
- MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘
- 只支持最多4个主分区。若想要更多分区,需要创建扩展分区,并在其中创建逻辑分区
GPT磁盘是指使用GUID分区表的磁盘,GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准
特点:
- GPT对磁盘大小没有限制
- 最多可以创建128个分区
注意:
MBR与GPT之间互相转换会导致数据丢失
2. 磁盘容量检测
使用df
命令查看磁盘容量,不加参数以k为单位:
df -i //查看inode使用情况
df -h //以G或者T或者M人性化方式显示
df -T //查看文件类型
//使用df命令查看磁盘,下面分别介绍每列什么含义
[root@localhost ~]# df -h
//设备名称 //磁盘大小 已用大小 可用大小 使用百分比 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 17G 12G 5.6G 68% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.2M 481M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 164M 851M 17% /boot
tmpfs 98M 0 98M 0% /run/user/0
使用lsblk
查看分区情况:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 3.8G 0 rom
使用du
命令查看目录或者文件的容量,不加参数以k为单位:
du -sh opt //人性化输出显示大小
-s:列出总和
-h:人性化显示容量信息
3. 磁盘分区
分区之前, 需要先给虚拟机添加一块磁盘,以便于我们做后续的实验vmware虚拟机,请按如下进行操作:
- 找到对应虚拟主机点击右键, 选择设置
- 在硬件向导里面点击添加按钮, 在硬件类型中选中“硬盘”, 点击下一步
- 磁盘类型选择默认, 然后创建新虚拟磁盘, 调整大小(不要勾选立即分配空间)
- 最后点击下一步, 完成即可
分区工具有fdisk和gdisk,当硬盘小于2T的时候我们应该用fdisk来分区,而当硬盘大于2T的时候则应用gdisk来进行分区
3.1 fdisk分区
//生产分区建议: 如无特殊需求, 直接使用整个磁盘即可, 无需分区
//学习分区建议:1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)
[root@localhost ~]# fdisk -l
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): m //输入m列出常用的命令
Command action
a toggle a bootable flag //切换分区启动标记
b edit bsd disklabel //编辑sdb磁盘标签
c toggle the dos compatibility flag //切换dos兼容模式
d delete a partition //删除分区
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 //创建新的Sun磁盘标签
t change a partition's system id //修改分区ID,可以通过l查看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): //默认回车
First sector (2048-2097151, default 2048): //默认扇区回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M //分配50MB
//创建扩展分区
Command (m for help): n //新建分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e //创建扩展分区
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): //默认划分所有空间给扩展分区
//创建逻辑分区
Command (m for help): n //新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l //创建逻辑分区
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M //分配100MB空间
//查看分区创建
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 2097151 996352 5 Extended
/dev/sdb5 106496 311295 102400 83 Linux
//保存分区
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
//检查磁盘是否是MBR分区方式
[root@localhost ~]# fdisk -l /dev/sdb|grep type
Disk label type: dos
//安装parted, 刷新内核立即生效,无需重启
[root@localhost ~]# yum -y install parted
[root@localhost ~]# partprobe /dev/sdb
3.2 gdisk分区
//安装gdisk工具
[root@localhost ~]# yum -y install gdisk
[root@localhost ~]# gdisk /dev/sdb
Command (? for help): n //创建新分区
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M //分配500M大小
Command (? for help): p //打印查看
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
Command (? for help): w //保存分区
Do you want to proceed? (Y/N): y //确认
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
//检查磁盘是否是gpt格式
[root@localhost /]# fdisk /dev/sdb -l|grep type
Disk label type: gpt
//安装parted, 刷新内核立即生效,无需重启
[root@localhost ~]# yum -y install parted
[root@localhost ~]# partprobe /dev/sdb
4. 磁盘格式化
使用mkfs
命令格式化磁盘,创建文件系统
//mkfs常用的选项有
-b //设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块。
-t //用来指定什么类型的文件系统,可以是ext3,ext4, xfs
-i //设定inode的大小
-N //设定inode数量,防止Inode数量不够导致磁盘不足
-L //预设该分区的标签label
//格式化整个sdb磁盘为ext4文件系统
[root@localhost ~]# mkfs.ext4 /dev/sdb1
//也可以使用-t指定方式创建ext4文件系统
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
//也可以格式化sdb1分区为xfs文件系统
[root@localhost ~]# mkfs.xfs /dev/sdb1
5. 磁盘挂载
在上面的内容中讲到了磁盘的分区和格式化, 那么格式化完了后, 如何使用, 这就涉及到了挂载这块磁盘
挂载分区前需要创建挂载点, 挂载点以目录形式出现
如果往挂载点目录写入数据, 实际上会写入到该分区
挂载点建议是空目录, 不是也不影响挂载分区的使用,但是会隐藏原有的文件
5.1 临时挂载磁盘
命令:mount挂载磁盘,实质为文件系统指定访问入口
mount -t //指定文件系统挂载分区,如ext3,ext4, xfs
mount -a //重新读取/etc/fstab配置文件的所有分区
mount -o //指定挂载参数
//fstab被损坏情况下,让只读文件系统可写(正常情况下不使用)
[root@localhost ~]#mount -o rw,remount /
//挂载/dev/sdb1至db1目录
[root@localhost ~]# mkdir /db1
[root@localhost ~]# mount -t xfs /dev/sdb1 /db1
5.2 永久挂载磁盘
//使用blkid命令获取各分区的UUID
[root@localhost ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
//使用UUID挂载磁盘sdb1分区至于db1, 临时挂载
[root@localhost ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1
//也可以把下面这行写到/etc/fstab中,永久挂载, 开机自动挂载
[root@localhost ~]# tail -1 /etc/fstab
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
//加载fstab配置文件, 同时检测语法是否有错误
[root@localhost ~]# mount –a
fstab
配置文件介绍:
[root@localhost ~]# vim /etc/fstab
//分区标识(UUID或设备名) 挂载点 文件类型 挂载参数 不检查 不备份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
//挂载参数, 可写fstab配置文件, 也可以mount时使用-o参数指定
参数 参数意义 系统默认值
async 系统每隔一段时间把内存数据写入磁盘中,
sync 时时同步内存和磁盘中数据;
suid,nosuid 允许/不允许分区有suid属性 suid
rw,ro 可以指定文件系统是只读(ro)或可写(rw) rw
exec,noexec 允许/不允许可执行文件执行,不要挂载根分区 exec
user,nouser 允许/不允许root外的其他用户挂载分区 nouser
auto,noauto 开机自动挂载/不自动挂载 auto
default 默认文件系统挂载设置 rw, suid, dev, exec, auto, nouser, async
//加载所有配置
[root@localhost ~]# mount -a
5.3 卸载挂载磁盘
umount -lf //强制卸载挂载
//使用站点目录卸载
[root@localhost ~]# umount /db1
//使用设备名卸载/dev/sdb1
[root@localhost ~]# umount /dev/sdb1
//umount不能卸载的情况
[root@localhost db1]# umount /db1
umount: /db1: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1)
//如上情况解决办法有两种, 切换至其他目录 或使用'-l'选项强制卸载
[root@localhost db1]# umount -l /db1
6. 交换分区SWAP
交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用。
交换分区一般指定虚拟内存的大小为实际内存的1~1.5倍。如果实际内存超过8GB,可以直接划分16GB给虚拟内存即可,如果虚拟内存不够用的情况,须增加一个虚拟磁盘,由于不能给原有的磁盘重新分区,所以可以选择新建。
6.1 创建swapfile
[root@localhost ~]# dd if=/dev/zero of=/opt/newdisk bs=1M count=1024
//if:指定源 一般写/dev/zero
//of:指定目标
//bs:定义块大小
//count:数量
6.2 格式化swap分区
[root@localhost opt]# mkswap -f /opt/newdisk
Setting up swapspace version 1, size = 1926952 KiB
no label, UUID=69d11824-8d72-4ea5-b383-ddbfd970db3d
6.3 检测当前swap分区情况
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 976 133 325 6 517 646
Swap: 2047 0 2047 //原来分区是2G
6.4 开启新建的SWAP分区
[root@localhost ~]# swapon /opt/newdisk
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 976 133 325 6 517 646
Swap: 3071 0 3071 //swap分区多出来1G
6.5 关闭新建的swap分区
[root@localhost ~]# swapoff /opt/newdisk
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 976 133 325 6 517 646
Swap: 2047 0 2047 //还原到没有增加虚拟磁盘
//创建swap分区并且持久化使用
例子: 给系统新增加一个交换分区(swap)
考试题目:一般是要求新建一个分区,并且把分区作为swap分区使用
查看内存和交换分区的使用情况
# free -m
total used free shared buffers cached
Mem: 1841 613 1227 16 0 258
-/+ buffers/cache: 354 1486
Swap: 0 0 0 <--- 没有交换分区
# swapon -s 也能用该命令查看,只是默认也是没有交换分区所有没有输出
# fdisk -l /dev/sdb
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 83 Linux <---准备把该分区作为交换分区
1、新建一个分区,并且把分区类型更改为82
新分区我们在上面的练习已经完成了,所以本例子不用分区,而是需要修改该分区的类型
# fdisk /dev/sdb
命令(输入 m 获取帮助):l 列出所有支持的分区类型对应的id
命令(输入 m 获取帮助):t 修改分区id
分区号 (1-5,默认 5):2 修改第2个分区
Hex 代码(输入 L 列出所有代码):82 修改成id为82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 82 Linux swap / Solaris <---修改成功
命令(输入 m 获取帮助):w
强烈建议: 对分区做了修改后都刷新一下
# partprobe /dev/sdb
2、把sdb2格式化为交换分区
# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=ba08eb90-2003-44e6-9769-9a9351aebb05
3、启动交换分区
# swapon /dev/sdb2 或者 # swanon -a 启动所有交换分区
查看
# swapon -s
文件名 类型 大小 已用 权限
/dev/sdb2 partition 2097148 0 -1
4、持久化保存交换分区的使用
# blkid /dev/sdb2
/dev/sdb2: UUID="ba08eb90-2003-44e6-9769-9a9351aebb05" TYPE="swap"
# vim /etc/fstab
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=cb3299d6-16e0-4644-9686-27907eefb8f3 /boot xfs defaults 0 0
UUID=ba08eb90-2003-44e6-9769-9a9351aebb05 swap swap defaults 0 0
7. 生产磁盘故障案例
Inode被占满,导致磁盘有可用的剩余空间也无法继续使用
[root@localhost ~]# dd if=/dev/zero of=/opt/newdisk bs=1k count=1024
[root@localhost ~]# mkfs.ext4 -i 1024 /opt/newdisk
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount -t ext4 -o loop /opt/newdisk /data/
//inode被占满
[root@localhost ~]# touch {1..20000}
touch: cannot touch `19997': No space left on device
touch: cannot touch `19998': No space left on device
touch: cannot touch `19999': No space left on device
touch: cannot touch `20000': No space left on device
//inode被占满,剩余block也是无法继续使用
[root@localhost ~]# df -i|grep data
/opt/newdisk 1024 1024 0 100% /data
[root@localhost ~]# df -h|grep data
/opt/newdisk 891K 34K 806K 5% /data
Block空间即将被占满, 但删除大文件也没有释放空间
假设现在线上正在运行Nginx服务, Nginx产生的日志已经达到了20个G, 磁盘眼看就看沾满了, 请问不重启Nginx的方式如何处理
//是会删除文件, 但Nginx持续占用着文件, 所以空间并不会被释放
rm -f access.log
//正确做法如下, 清空该文件即可释放文件内容
> access.log
8 作业
8.1 硬盘分区
8.1.1 1P1E6L
// 虚拟机中需要先添加磁盘进去,然后查看磁盘是否添加成功
[root@wz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk //这个就是添加进去的磁盘
sr0 11:0 1 3.8G 0 rom
//然后进行分区
[root@wz ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xc48944d2 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):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
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):n //n是创建一个新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): //这里默认创建一个主分区,所以没有输入
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048): //这里也是使用默认值
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G //这个是给创建的主分区5G的容量
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w //保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
//创建一个扩展分区
[root@wz ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):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
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e //这里e为创建一个扩展分区
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+1G
分区 2 已设置为 Extended 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w //这里可以不用保存退出,可以一直操作到你创建到你所需要的数量再保存退出即可
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
//创建一个逻辑分区
[root@wz ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):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
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l //这里l代表创建一个逻辑分区
添加逻辑分区 5
起始 扇区 (10489856-39847935,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-39847935,默认为 39847935):+1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
// 查看创建了几个主分区,几个扩展分区,几个逻辑分区
[root@wz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part //主分区
├─sdb2 8:18 0 1K 0 part //扩展分区
├─sdb5 8:21 0 1G 0 part //逻辑分区
├─sdb6 8:22 0 1G 0 part //逻辑分区
├─sdb7 8:23 0 1G 0 part //逻辑分区
├─sdb8 8:24 0 1G 0 part //逻辑分区
├─sdb9 8:25 0 1G 0 part //逻辑分区
└─sdb10 8:26 0 1G 0 part //逻辑分区
sr0 11:0 1 3.8G 0 rom
//格式化分区,所有新建的分区必须要格式化
[root@wz ~]# mkfs.ext4 /dev/sdb10
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
//刷新内核立即生效,无需重启
[root@wz ~]# partprobe /dev/sdb
也可以使用:
[root@localhost ~]# yum -y install parted //需要先下载parted
//临时挂载硬盘
[root@wz ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="87465c19-42da-4e46-9109-ae518e370fc0" TYPE="ext4"
/dev/sdb10: UUID="c1ab7908-968c-4c2f-87b6-f8f18f67834f" TYPE="ext4"
[root@wz ~]# mount UUID="87465c19-42da-4e46-9109-ae518e370fc0" /opt/sdb1
[root@wz ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.8M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb1 4.8G 20M 4.6G 1% /opt/sdb1
//永久挂载硬盘
[root@wz ~]# blkid |grep "sdb5"
/dev/sdb5: UUID="f7a224da-a45c-4b9e-97cc-b5cc67b49c35" TYPE="ext4"
[root@wz ~]# vi /etc/fstab //将提取到UUID按照下面格式写进这个文件
#
# /etc/fstab
# Created by anaconda on Sun Sep 15 02:58:58 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=4dfca5e8-4cf5-451e-9058-96a051efae1b /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
UUID="87465c19-42da-4e46-9109-ae518e370fc0" /opt/sdb1 ext4 defaults 0 0
UUID="f7a224da-a45c-4b9e-97cc-b5cc67b49c35" /opt/sdb5 ext4 defaults 0 0
[root@wz ~]# mount -a
[root@wz ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sdb1 4.8G 20M 4.6G 1% /opt/sdb1
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb5 976M 2.6M 907M 1% /opt/sdb5
8.1.2 2P1E4L
[root@wz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 3.8G 0 rom
//创建两个主分区,一个扩展分区,四个逻辑分区
[root@wz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 1G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 1G 0 part
├─sdb6 8:22 0 1G 0 part
├─sdb7 8:23 0 1G 0 part
└─sdb8 8:24 0 1G 0 part
sr0 11:0 1 3.8G 0 rom
//刷新内核立即生效,无需重启
[root@wz ~]# partprobe /dev/sdb
//格式化各个分区
[root@wz ~]# mkfs.ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
//临时挂载硬盘,临时挂载的硬盘重启后会无效
[root@wz opt]# mkdir sdb1 sdb2 sdb5 sdb6 sdb7 sdb8
[root@wz opt]# ls
bdck sdb1 sdb2 sdb5 sdb6 sdb7 sdb8
[root@wz ~]# mount /dev/sdb1 /opt/sdb1
[root@wz ~]# mount /dev/sdb2 /opt/sdb2
[root@wz ~]# mount /dev/sdb5 /opt/sdb5
[root@wz ~]# mount /dev/sdb6 /opt/sdb6
[root@wz ~]# mount /dev/sdb7 /opt/sdb7
[root@wz ~]# mount /dev/sdb8 /opt/sdb8
//查看临时挂载的硬盘
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.8M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb1 976M 2.6M 907M 1% /opt/sdb1
/dev/sdb2 976M 2.6M 907M 1% /opt/sdb2
/dev/sdb5 976M 2.6M 907M 1% /opt/sdb5
/dev/sdb6 976M 2.6M 907M 1% /opt/sdb6
/dev/sdb7 976M 2.6M 907M 1% /opt/sdb7
/dev/sdb8 976M 2.6M 907M 1% /opt/sdb8
//永久挂载
[root@wz ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="8a2eb8ed-11fa-49a6-8cbb-2a0dacc5f6e1" TYPE="ext4"
[root@wz ~]# vi /etc/fstab //按照下面一行格式将查询到的UUID写入这个文件
UUID="8a2eb8ed-11fa-49a6-8cbb-2a0dacc5f6e1" /opt/sdb1 ext4 defaults 0 0
[root@wz ~]# reboot //重启系统
[root@wz ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sdb1 976M 2.6M 907M 1% /opt/sdb1
/dev/sda1 1014M 125M 890M 13% /boot
tmpfs 183M 0 183M 0% /run/user/0
8.1.3 3P1E1L
// 查看硬盘添加成功了没有
[root@wz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 3.8G 0 rom
//进行分区
[root@wz ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xcef799e9 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1g
不支持的后缀:“g”。
支持:10^N: KB (千字节), MB (兆字节), GB (吉字节)
2^N: K (约千字节), M (约兆字节), G (约吉字节)
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):N
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (2099200-41943039,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): P
分区号 (3,4,默认 3):
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G
分区 3 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
已选择分区 4
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+17G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):16.56G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):16.50G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):15G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+14G
分区 4 已设置为 Extended 类型,大小设为 14 GiB
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (6295552-35653631,默认为 6295552):
将使用默认值 6295552
Last 扇区, +扇区 or +size{K,M,G} (6295552-35653631,默认为 35653631):+11G
分区 5 已设置为 Linux 类型,大小设为 11 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
//刷新内核,无需重启,立即生效
[root@wz ~]# partprobe /dev/sdb
//格式化分区
[root@wz ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@wz ~]# mkfs.ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@wz ~]# mkfs.ext4 /dev/sdb3
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
//临时挂载硬盘
[root@wz opt]# mkdir sdb1
[root@wz opt]# mkdir sdb5
[root@wz opt]# ls
bdck sdb1 sdb5
[root@wz ~]# mount /dev/sdb1 /opt/sdb1
[root@wz ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb1 976M 2.6M 907M 1% /opt/sdb1
//永久挂载硬盘 ,重启后依然生效
[root@wz ~]# mount /dev/sdb5 /opt/sdb5
[root@wz ~]# blkid |grep "sdb5"
/dev/sdb5: UUID="8f41fccb-35d8-4f38-9cc2-7d2fa4915eb5" TYPE="ext4"
[root@wz ~]# vi /etc/fstab
[root@wz ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb1 976M 2.6M 907M 1% /opt/sdb1
/dev/sdb5 11G 41M 11G 1% /opt/sdb5
[root@wz ~]# reboot
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.26.188:22) at 14:56:34.
Type `help' to learn how to use Xshell prompt.
[D:\~]$ ssh root@192.168.26.188
Connecting to 192.168.26.188:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Sun Oct 13 14:38:14 2019 from 192.168.26.1
[root@wz ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 5.7G 12G 34% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sdb5 11G 41M 11G 1% /opt/sdb5
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
8.2 创建swap虚拟内存
8.2.1 创建swap临时虚拟内存
创建swapfile
[root@wz ~]# dd if=/dev/zero of=/opt/sdb5/xnnc_file bs=3G count=1
记录了0+1 的读入
记录了0+1 的写出
2147479552字节(2.1 GB)已复制,28.7422 秒,74.7 MB/秒
格式化swap分区
[root@wz ~]# mkswap -f /opt/sdb5/xnnc_file
正在设置交换空间版本 1,大小 = 2097144 KiB
无标签,UUID=1f5d1b85-460b-4d6e-8148-387aa98b0463
查看swap内存
[root@wz ~]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 1 0 1
开启swap分区
[root@wz ~]# swapon /opt/sdb5/swap_flie
swapon: /opt/sdb5/swap_flie:不安全的权限 0644,建议使用 0600。
查看swap内存
[root@wz ~]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 3 0 3
关闭swap分区
[root@wz sdb5]# swapoff /opt/sdb5/swap_flie
查看swap内存
[root@wz sdb5]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 1 0 1
8.2.2 创建swap永久虚拟内存
在机器中添加一块硬盘
[root@wz ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk
sr0 11:0 1 3.8G 0 rom
对这块硬盘进行分区
[root@wz ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xd196cf3e 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):l
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
格式化swap分区,并刷新内核
正在设置交换空间版本 1,大小 = 2096124 KiB
无标签,UUID=67ba9fab-4944-42f8-8141-337906a561a5
[root@wz ~]# partprobe /dev/sdb1
查询swap内存
[root@wz ~]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 1 0 1
开启swap分区
[root@wz ~]# swapon /dev/sdb1
查询swap内存
[root@wz ~]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 3 0 3
查询swap内存的UUID
[root@wz ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="67ba9fab-4944-42f8-8141-337906a561a5" TYPE="swap"
将查询到的UUID写入
[root@wz ~]# vi /etc/fstab
UUID="67ba9fab-4944-42f8-8141-337906a561a5" swap swap defaults 0 0
重启后依然生效
[root@wz ~]# reboot
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.26.188:22) at 16:02:42.
Type `help' to learn how to use Xshell prompt.
[D:\~]$ ssh root@192.168.26.188
Connecting to 192.168.26.188:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Sun Oct 13 15:54:19 2019 from 192.168.26.1
[root@wz ~]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 3 0 3