知识引导:
承接上次实验
复习:使用新磁盘的整体流程:
1.分区---2.新磁盘分区表---3.格式化---4.挂载---5.使用
6.1.2 fdisk分区命令的使用技巧(GPT分区类型实例)
(1)fdisk /dev/vdb
g create a new empty GPT partition table //GPT类型分区表
o create a new empty DOS partition table //MBR类型分区表
Command (m for help): g //设置磁盘/dev/vdb分区表类型为GPT
Created a new GPT disklabel (GUID: 4518A21F-3017-324E-9B55-17753B79EF9E).
Command (m for help): p
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: gpt
Disk identifier: 4518A21F-3017-324E-9B55-17753B79EF9E
Command (m for help): n //创建磁盘分区
Partition number (5-128, default 5):
First sector (2050048-10485726, default 2050048):
Last sector, +sectors or +size{K,M,G,T,P} (2050048-10485726, default 10485726): +500M //设置该分区大小为500M
Created a new partition 5 of type 'Linux filesystem' and of size 500 MiB.
Command (m for help): p //查看分区情况
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: gpt
Disk identifier: 4518A21F-3017-324E-9B55-17753B79EF9E
Device Start End Sectors Size Type
/dev/vdb1 2048 206847 204800 100M Linux filesystem
/dev/vdb2 206848 616447 409600 200M Linux filesystem
/dev/vdb3 616448 1230847 614400 300M Linux filesystem
/dev/vdb4 1230848 2050047 819200 400M Linux filesystem
/dev/vdb5 2050048 3074047 1024000 500M Linux filesystem
Command (m for help): w //写入并退出
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
fdisk -l /dev/vdb
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: gpt
Disk identifier: 4518A21F-3017-324E-9B55-17753B79EF9E
Device Start End Sectors Size Type
/dev/vdb1 2048 206847 204800 100M Linux filesystem
/dev/vdb2 206848 616447 409600 200M Linux filesystem
/dev/vdb3 616448 1230847 614400 300M Linux filesystem
/dev/vdb4 1230848 2050047 819200 400M Linux filesystem
/dev/vdb5 2050048 3074047 1024000 0500M Linux filesystem
lsblk /dev/vdb --fs
NAME FSTYPE LABEL UUID MOUNTPOINT
vdb
├─vdb1
├─vdb2
├─vdb3
├─vdb4
└─vdb5
更新磁盘分区表的方法:
udevadm settle //如果该命令正确,说明分区过程正确(实际操作可以不用)
partprobe (让linux内核重新读分区表)(reboot)
cat /proc/partitions(proc即时内存目录)
挂载mount
格式化好的磁盘分区在Linux系统下仅仅是一个设备文件,例如/dev/vde1,/dev/vde2,不能直接使用。
只有将该设备文件绑定到一个目标目录上才可以使用(该过程称为挂载)。
1 通过设备文件名挂载物理分区
方法一:通过mount命令实现手动挂载
mkdir /mmm1
mount /dev/sdb2 /mmm1 (下面写法的快速写法,挂载设备文件名也可以写UUID)
mount -t ext3 /dev/vde2 /zhangsan3 (mount -t 是完整写法)
查看关联的两个方法:
df -Th(要知道各个字段信息的含义)
lsblk --fs (通过mount point字段可以查看到是否挂载到目标目录上)
cd /mmm1
touch 111.txt
mkdir 111
umount /mmm1(或者 umount /dev/sdb2)
df -Th
方法二:通过/etc/fstab文件实现开机自动挂载(注意输入内容格式检查,出错直接死机,进入验证安全登陆界面)
vim /etc/fstab文件前三个字段的含义
设备文件名/dev/sda1 挂载目标目录/ 设备文件名对应的分区的类型ext4
/dev/sdb2 /mmm1 ext4 defaults 0 0
(这里注意,挂载设备文件名与UUID都可以)
df –Th 查看挂载情况
mount -a(虚拟挂载,模拟挂载成功,检测是否出现问题)
df –Th 查看挂载情况
2 通过UUID挂载物理分区
blkid 只显示已格式化的分区的UUID信息
注意:各物理设备的UUID号是系统定义好的,唯一的,用户无法修改。
方法一:通过mount命令实现手动挂载
方法二: 通过/etc/fstab文件实现开机自动挂载
第9讲:swap交换分区管理
1.开机自动挂载文件/etc/fstab中六个字段的含义
vim /etc/fstab
设备名称或设备UUID 挂载点 文件系统类型 权限 内核日志检测机制0不检测 磁盘检测机制0不检测
/dev/vdc1 /mnt/dir1 ext4 defaults 0 0
UUID=64237913-4937-48ff-8afa-28c6fc05124d /mnt/dir2 xfs defaults 0 0
注意:修改完/etc/fstab文件,虽然可以用mount -a命令测试是否成功挂载,但一定要reboot重启系统测试。
自动挂载操作问题解决:
2.由于/etc/fstab文件书写错误导致系统无法启动的解决方法
例如,将/etc/fstab文件中的一行挂载纪录写成了如下形势default
/dev/vde2 /222 ext4 default 0 0
如图:
则重启系统时无法正常启动,Failed to mount /222, See 'systemctl status 222.mount' for details.(到真机里,通过救援模式)
系统会进入一种救援模式:
Give root password for maintenance
(or press Control-D to continue):
正确输入root用户密码,即可获取#权限(看不到密码,盲打)
vim /etc/fstab
检查错误,这里将default改成defaults,变成绿色说明正确。
reboot重启系统
df -Th
tips:多虚拟机环境出现问题:虚拟机,物理机,——快照,克隆,重新导入压缩源文件
常识性知识:
3.swap交换分区的功能
CPU--------------------内存RAM-------------------外存(硬盘)----à局部性原理:可以让我们的小内存运行大程序 卡 swap(本身是外存划分的一块,速度介于内存外存之间,作为内存外存的桥梁)
4.swap交换分区的典型大小
内存RAM<=2G,swap设置为2倍的内存RAM大小;
2G<内存RAM<=8G,swap设置为同等的内存RAM大小;
8G<内存RAM<=64G,swap设置为至少4G;最佳分配空间还是等同内存
内存RAM>64G,swap设置为至少4G;最佳分配空间还是等同内存
5.查看swap分区的大小
free //查看内存的详细信息,其中包括交换分区的大小,单位为K
free -m //查看内存的详细信息,其中包括交换分区的大小,单位为M
free -h //GB
cat /proc/swaps 或swapon -s //查看即时内存中的交换分区信息;功能比前面更强,能看到底层分区支持(proc即时目录)
top //动态刷新: 显示系统中运行的进程信息,包含swap分区信息 (q退出)
#6.使用swap分区的整体流程
分区(must be 82),更新磁盘分区表,格式化(mkswap :id编码必须是82),挂载,使用(系统会自动使用)
例1,添加一个1G的swap分区并且重启系统依然有效(开机自动挂载),不能改变原来的swap分区(不能修改)
(1)分区
fdisk /dev/vdc
建立一个1G的分区,例如/dev/vdb1
创建界面:第一个分区为主分区:p查看,n创建,p主分区
t:修改类型为82 T:类型编码
W:保存
(2)更新磁盘分区表
partprobe
cat /proc/partitions
(3)格式化(使得分区格式为swap交换分区格式哦)
mkswap /dev/vdc1
blkid
(4)挂载
方法一:手动挂载/激活(仅本次有效,重启后无效)
swapon /dev/sda1 (手动打开)
验证swap交换分区挂载成功与否的方法
free -m
swapon –s
cat /proc/swaps
卸载
swapoff /dev/vdc1 (手动关闭)
swapon –s
*****重点方法二:永久挂载(开机自动挂载)
vim /etc/fstab
/dev/vdc1 (还可以写UUID!哈哈) swap(表示充当swap)swap(表示格式化类型) defaults 0 0(这个无所谓,一模一样写)
*(区别)swapon -a //不同于挂载普通分区时执行的mount -a,这个无效了,只能用专用的!如下图
free
reboot //重启验证效果 不可以省略!
下图注意:mount –a 模拟挂载效果失败了! 切记要改用。
swapon -a
reboot:
例2,将系统的swap分区增加到1500000K,并且重启系统依然有效,不能改变原来的swap分区
(1)查看swap分区的大小
free //查看内存的详细信息,其中包括交换分区的大小,单位为K,这里为1048572
free -m //查看内存的详细信息,其中包括交换分区的大小,单位为M
cat /proc/swaps 或swapon -s //查看即时内存中的交换分区信息
top // 显示系统中运行的进程信息,包含swap分区信息 (q退出)
(2)计算swap的差值
expr(要求将swap分区调整到1500000K)(计算表达式,要求左右空格!)
free
total used free shared buff/cache available
Mem: 1872900 195644 1403052 25172 274204 1500324
Swap: 1048572 0 1048572
expr 1500000 - 1048572 #451428
(3)创建一个大小为451428大小的物理分区/dev/vdc2
(4)格式化该分区 mkswap /dev/vdc2
(5)修改/etc/fstab文件实现开机自动挂载
vim /etc/fstab
/dev/vdc2 swap swap defaults 0 0
swapon -a //不同于挂载普通分区时执行的mount -a
free
reboot //重启验证效果
课后练习题
向你的系统添加一个额外的交换分区 756MiB 。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区。
fdisk /dev/vdc
p查看分区情况
n 创建 (如果是其他类型分区,用o或者g)
p 主分区
swapon –a虚拟挂载:
t修改格式为82 swap交换分区格式
mkswap /dev/vdc1 格式化
vim /etc/fstab 实现自动挂载
swapon –a 虚拟挂载测试
reboot’测试
小结:(通过本次课程学到了哪些知识;在实验过程中遇到的问题及解决办法)
通过本次课程,学会了自动配置文件配置内容输入错了,会导致系统进入救援模式,还需要操作修复,浪费考试时间;还学习了磁盘分区中的一个特殊的分区,swap交换分区,它本身还是个占用外存的分区,但是却起到了介于高速缓存的内存与较慢读取存取的硬盘之间的桥梁作用,使得小的内存依然可以运行大的程序。特别注意的是它的分区虚拟挂载方式不同于普通分区。