第五课Linux磁盘管理
4.1df命令
用途:用于查看已挂载磁盘的总容量,使用容量,剩余容量等,默认以KB单位显示。命令如下:
挂载点:必须通过挂载点找到磁盘,进入磁盘读数据,写数据
参数:
1.-h,表示使用合适的单位显示
需要格外关注:/dev、/dev/shm为内存分区,处在内存分区下的文件,读写非常快,但是系统重启时,文件就会丢失。
2.-i,表示查看inodes的使用情况。inode大小跟磁盘分区大小有关
inode满了,即使磁盘空间有空余,磁盘空间也写不进去。
3.-m,表示以MB为单位显示。
查看swap分区:
4.2du命令
用途:用于查看某个目录或文件所占空间的大小。
参数:
1.-sh(最常用),-s表示只列出总和,-h表示系统自动调节单位。
[[email protected] ~]# du -sh /root
64K /root
2.不加任何参数,只会列出目录(包含子目录)的大小。
4.3磁盘分区
作为一个Linux系统管理员,对磁盘的操作必须熟练。
4.3.1增加虚拟磁盘(在虚拟机中增加,虚拟机版本VMware Workstation10)
1.在当前的虚拟机选项卡点击右键,选择“设置”。
2.此时弹出“虚拟机设置”对话框。在左侧选择“硬盘”然后点击左下方的“添加”按钮,此时会弹出“添加硬件向导”对话框,点击下一步。
3.“选择磁盘类型”保持默认,直接点击“下一步”
4,“选择磁盘”,保持默认,点击下一步
5.“指定磁盘容量”,设定“最大磁盘大小”为10GB,然后选择“将虚拟磁盘存储为单个文件”
6.点击“下一步”,然后点击“完成”按钮。最终完成添加新的虚拟磁盘。此时需要重启系统才可以。
4.3.2命令fdisk
用途:linux下硬盘的分区工具。
命令格式:fdisk 参数 设备名称,参数只有-l,不加设备名称,会直接列出系统中所有磁盘设备以及分区表;加上设备名称,则会列出该设备的分区表。
从图中可以看到新增的一块磁盘/dev/sdb的信息
fdisk命令不加-l参数,则可以进行对磁盘分区操作。命令如下:
此时输入m,会列出更多的命令,如下图所示:
介绍几个常用的命令:
1. p 表示打印当前磁盘的分区情况
此时还未对/dev/sdb进行分区,所以并未显示任何分区信息
2. n 表示建立一个新的分区
分区类型:MBR分区,特点:最高支持2T,最多只有4个主分区。
主分区+扩展分区小于等于4
这里先建立主分区,选择p,回车后会提示分区数,这里选择1,因为是第1个分区。起始分区默认2048,最后分区写+2G,如下图所示
此时可以用命令p查看分区情况,如下图所示
此时上图多了一个分区。
按照以上步骤,一直创建主分区到4。如下图所示:
创建4个主分区后,再想创建分区时会出现问题。这是因为在Linux系统中,最多只能创建4个主分区。
那如何多创建几个分区,可以创建完第3个分区后,创建第4个分区时选择扩展分区。首先删除第4个分区,然后再新建分区。
快捷键:ctrl+u清空某行输入内容
上图最后一列Extended表示扩展分区。
接下来在扩展分区中创建逻辑分区(扩展分区只是壳子,真正写数据的是逻辑分区):
删除一个分区:
按CTRL+C键,这样刚刚做的分区就全部取消了。
逻辑分区的id是从5开始的,逻辑分区的id号是连续的,主分区可以不连续,逻辑分区id号连续实例:
现在删除6逻辑分区
然后再看分区id,还有6,依然是连续的id.
3.w 表示保存,分区完成后,需要输入w命令来保存配置。
查看分区情况:
4.q 表示退出
4.4磁盘格式化
磁盘分区虽然分好,但暂时还不能使用,还必须对每一个分区进行格式化。所谓格式化,就是安装文件系统。下图是centos7默认支持的文件系统格式
Centos6使用的是ext4文件系统。
4.4.1命令mke2fs,mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs
命令mke2fs
参数:
1.-t,用来指定文件系统类型
指定文件系统为ext4时,命令mke2fs –t ext4 /dev/sdb5等同于mkfs.ext4 /dev/sdb5,命令如下:
[[email protected] ~]# mke2fs -t ext4 /dev/sdb5
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: 完成
查看刚刚格式化的分区文件系统:使用命令blkid
Mke2fs并不支持分区格式化成XFS类型,而只能使用mkfs.xfs,命令如下:
2.-b,指定块的大小,ext4文件系统的默认块大小为4096B,在格式化时,可以指定块大小1024B,2048B或者4096B(它们是成倍增加的)
3.-m指定分区预留空间
4.-L,指定标签,标签会在挂载磁盘时使用,也可以使用配置文件
5.-i,指定多少字节对应一个inode,默认是1个inode=4块=16K,现改为1个inode=8k
4.5磁盘挂载
格式化完成后,如何使用这些磁盘,这将涉及到挂载磁盘
在挂载某个分区前,首先需要建立一个挂载点,挂载点是以目录形式存在的,在往这个目录写数据时,都会写到该分区中。
在挂载该分区前,挂载点下必须是空目录,因为一旦挂载上了,该目录下以前的东西就看不到了,除非卸载该分区。
4.5.1命令mount
命令格式:mount 分区 空目录
参数:
-o:用来指定挂载的分区有哪些特性
-t:用来指定挂载的分区类型
-a:会把出现的所有磁盘分区挂载上
2.卸载挂载点命令umount
有时候会遇到不能卸载的情况,可使用-l参数解决:
4.5.2/etc/fstab配置文件
第一列是分区的标识,可以写分区的LABEL,分区的UUID,也可以写分区名(/dev/sdb5)
第二列是挂载点
第三列是分区的格式
第四列是mount的一些挂载参数,一般情况下写defaults即可
第五列的数字表示是否被dump备份。1表示备份,0表示不备份(dump备份文件系统)
第六列的数字表示开机时是否自检磁盘,设置优先级,1和2表示检测,0表示不检测。1比2优先级高,所以先检测1,再检测2.如果有多个分区需要开机检测,就都设置成2,1检测完成会同时检测2.
着重介绍第四列常用选项:
async/sync:async表示磁盘和内存不同步,系统每隔一段时间就会把内存数据写入磁盘中,sync会时时同步内存和磁盘中的数据。
auto/noauto:表示开机自动挂载或自动不挂载
default:表示按照大多数永久文件系统的默认值设置挂载定义,它包含得了rw/suid/dev/exec/auto/nouser/async.
ro:表示按只读权限挂载
rw:表示按可读可写权限挂载
exec/noexec:表示允许/不允许可执行文件执行,千万不要把根分区挂载为noexec,否则将无法使用系统。
user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全使用nouser
suid/nosuid:表示允许/不允许分区有suid属性,一般设置为nosuid.
usrquota:表示启动用户的磁盘配额模式,磁盘配额会针对用户限定它们使用的磁盘额度。
grquota:表示启动群组的磁盘配额模式。
4.6手动增加swap空间
建立一个swap文件增加虚拟内存
增加虚拟磁盘的基本思路:建立swapfiel-格式化为swap格式-启用该虚拟磁盘
1. 建立swapfile ,如下图所示;
dd命令用来操作磁盘,if指定源(一般是写/dev/zero,linux内核doulingqi产生源源不断的0),of指定目标文件(将0写到哪里去),bs定义块的大小,count定义块的数量
2. 将文件格式化为swap格式,如下图所示
3. 启用该虚拟磁盘
启用命令:swapon,free命令用来查看内存的使用情况,-m表示以MB单位显示。其中前后两次查看情况,增加了1024MB的空间。
卸载swap文件命令:swapoff
4.7lvm(logical volume manager逻辑分区讲解
可以方便的扩容或缩容磁盘空间
Physical volume是物理卷,实际上磁盘分区,Volume group是物理卷的集合,叫卷组。 在卷组基础上划分逻辑卷,然后格式化,然后挂载使用。
准备磁盘分区:
1. fdisk /dev/sdb,n 创建三个新分区 ,分别为1Gt改变分区类型为8e
2. 准备物理卷
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3
pvdisplay 或pvs列出当前的物理卷
pvremove /dev/sdb3 删除物理卷
yum安装小技巧,当不知道包名称时:
1.
2.
3.创建卷组,vgcreate
4. 有了卷组后创建逻辑卷
5. 做格式化
6. 挂载
7. 扩容逻辑卷
lvresize –L 300M /dev/vg1/lv1 重新设置卷大小
e2fsck –f /dev/vg1/lv1 检查磁盘错误(ext4执行)
resize2fs /dev/vg1/lv1 更新逻辑卷信息(ext4执行)
针对xfs文件系统扩容;xfs_growfs /dev/vg1/lv1 xfs文件系统需要执行。
首先格式化:
然后挂载
重新设置卷大小
然后执行
8. 缩减逻辑卷(xfs不支持)
先umount
e2fsck –f /dev/vg1/lv1 检查磁盘错误(ext)
resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext)
lvresize –L 100M /dev/vg1/lv1 重新设置卷大小
9. 扩展卷组
fdisk /dev/sdb 新增/dev/sdb5(逻辑分区8e) 2G
pvcreate /dev/sdb5
vgextend vg1 /dev/sdb5
lvresize –L 100M /dev/vg1/lv1 重新设置卷大小
4.8磁盘小故障小案例
遇到如下故障:
编辑:vi /etc/fstab
把此行删除掉,快速删除方法:dd
保存退出,重启。
扩展:关于inode详解:http://www.jb51.net/article/116502.htm
使用命令dd命令测试磁盘读写性能:https://blog.****.net/daiyudong2020/article/details/53157558
使用dd命令备份硬盘:http://zuyunfei.com/2015/06/04/linux-dd/
生产环境中使用raid操控硬盘:https://blog.****.net/caipeichao2/article/details/52661825
阿里云磁盘扩容案例:https://help.aliyun.com/document_detail/25452.html
磁盘有坏道的修复:https://www.2cto.com/os/201204/126370.html
存储:http://forum.huawei.com/enterprise/zh/thread-274145-1-1.html
存储:https://blog.****.net/JesseYoung/article/details/38367217
parted分区gpt格式 http://www.apelearn.com/bbs/thread-7243-1-1.html