磁盘管理
2021/8/28 6:06:19
本文主要是介绍磁盘管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
磁盘管理
1、查看磁盘或者目录的容量
1.1、命令 : df
“df” 常用选项有 “-i” “-h” “-k” “-m”等
通常使用-h,“-h” 使用合适的单位显示
[root@antong ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 908M 0 908M 0% /dev tmpfs 919M 24K 919M 1% /dev/shm tmpfs 919M 612K 919M 1% /run tmpfs 919M 0 919M 0% /sys/fs/cgroup /dev/vda1 59G 4.7G 52G 9% / tmpfs 184M 0 184M 0% /run/user/0
使用“-i” 查看inodes使用状况
[root@antong ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on devtmpfs 232302 317 231985 1% /dev tmpfs 235249 7 235242 1% /dev/shm tmpfs 235249 450 234799 1% /run tmpfs 235249 16 235233 1% /sys/fs/cgroup /dev/vda1 3932160 107287 3824873 3% / tmpfs 235249 1 235248 1% /run/user/0
1.2、命令 : du
“du” 用来查看某个目录或文件所占空间大小.
语法 : du [-abckmsh] [文件或者目录名] 常用的参数有:
“-a” 全部文件与目录大小都列出来。如果不加任何选项和参数只列出目录(包含子目录)大小。
[root@antong ~]# du /root/ 8 /root/.cache/pip/selfcheck 12 /root/.cache/pip 8 /root/.cache/abrt 24 /root/.cache 8 /root/.pip 4 /root/.local/lib/python3.7/site-packages 8 /root/.local/lib/python3.7 12 /root/.local/lib 16 /root/.local 8 /root/.ssh 4 /root/.config/abrt 8 /root/.config 116 /root/
文件多时,使用du -a 命令的时候通过管道符输出前10行,如下所示
[root@antong ~]# du -a /root | head 4 /root/.lesshst 4 /root/.cshrc 4 /root/.bashrc 8 /root/.viminfo 4 /root/.bash_logout 4 /root/.cache/pip/selfcheck/4b4540288f36dc39a1d4330b3bb43614246a67c86757503ae13396d8 8 /root/.cache/pip/selfcheck 12 /root/.cache/pip 4 /root/.cache/abrt/lastnotification 8 /root/.cache/abrt
如果du不指定单位的话,默认显示单位为K.
“-b” 列出的值以bytes为单位输出。
“-k” 以KB为单位输出,和默认不加任何选项的输出值是一样的。
“-m” 以MB为单位输出
“-h” 系统自动调节单位,例如文件太小可能就几K,那么就以K为单位显示,如果大到几G,则就以G为单位显示。
“-c” 最后加总
“-s” 只列出总和
以上参数中-sh比较常用
2、磁盘分区格式化
一个全新的磁盘来分区并格式化,可以通过虚拟机添加一个新的硬盘来练手。
-
先关闭正在运行的Linux系统 init 0.
-
到vmware的Linux虚拟机界面,点 “Edit virtual machine settings”, 点一下左侧靠下面的 “Add...” 按钮。
-
在左侧选中 “Hard Disk” 默认就是这一行,点右下角的 “Next”, 继续点 “Next”.
-
“Virtual disk type” 选择 IDE, 点 “Next”
-
继续点 “Next”, “Disk size” 默认即可,最后点 “Finish”.
2.1、命令 : fdisk
fdisk 是Linux下硬盘的分区工具,是一个非常实用的命令,但是fdisk只能划分小于2T的分区。
语法 : fdisk [-l ] [设备名称] 选项只有一个,“-l” 后边不跟设备名会直接列出系统中所有的磁盘设备以及分区表,加上设备名会列出该设备的分区表。
[root@antong ~]# fdisk -l Disk /dev/vda: 64.4 GB, 64424509440 bytes, 125829120 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: 0x0009ac89 Device Boot Start End Blocks Id System /dev/vda1 * 2048 125829086 62913519+ 83 Linux
“fdisk” 如果不加 “-l” 则进入另一个模式,在该模式下,可以对磁盘进行分区操作。
‘m’ 会列出常用的命令,常用的有’p’, ‘n’, ‘d’, ‘w’, ‘q’
“p” 打印当前磁盘的分区情况
‘n’ 建立一个新的分区:使用 ‘n’ 命令新建分区,它会提示是要 ‘e’ (扩展分区) 还是 ‘p’ (主分区) 我的选择是 ‘p’, 于是输入 ‘p’ 然后回车。
‘w’ 保存操作
‘q’ 退出
‘d’ 删除一个分区
3.格式化磁盘分区
3.1命令 : mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4
4个命令常用的选项有:
‘-b’ 分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
‘-i’ 设定inode的大小
‘-N’ 设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。
‘-c’ 在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢
‘-L’ 预设该分区的标签label
‘-j’ 建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了
‘-t’ 用来指定什么类型的文件系统,可以是ext2, ext3 也可以是 ext4.
3.2命令 : e2label
用来查看或修改分区的标签,了解一下即可。
[root@antong ~]# e2label /dev/vda1 Test [root@antong ~]# e2label /dev/vda1 Test
4.挂载/卸载磁盘
在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据使,则都会写到该分区中。这就需要你注意一下,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。
4.1命令 : mount
如果不加任何选项,直接运行 “mount” 命令,会显示如下信息。
[root@antong ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,size=929208k,nr_inodes=232302,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup //下面还有,不在此展示了
mount挂载后可以通过df -h来查看挂载的分区信息
“umount” 命令,这个是用来卸载磁盘分区的,mount 命令常用的选项有:’-a’, ‘-t’, ‘-o’. 在讲 ‘-a’ 选项前,我们有必要先了解一下这个文件 /etc/fstab
这个文件是系统启动时,需要挂载的各个分区。第一列就是分区的标识,可以写分区的LABEL,也可以写分区的UUID(等会笔者会着重讲一下这个概念),当然也可以写分区名(/dev/sda1);第二列是挂载点;第三列是分区的格式;第四列则是mount的一些挂载参数,等下会详细介绍一下有哪些参数,一般情况下,直接写defaults即可;第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘。1,2都表示检测,0表示不检测,在Redhat/CentOS中,这个1,2还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。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,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;
“user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
“suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid ;
“usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
“grquota” : 启动群组磁盘配额模式;
不过这个文件请谨慎配置,配置错误的话可能没有办法开机哦!
4.2命令 : blkid
通过 blkid 命令获取各分区的UUID。
[root@antong ~]# blkid /dev/sr0: UUID="2021-08-23-22-16-21-00" LABEL="config-2" TYPE="iso9660" /dev/vda1: LABEL="Test" UUID="4b499d76-769a-40a0-93dc-4a31a59add28" TYPE="ext4"
这样可以获得全部磁盘分区的UUID,如果格式化的时候指定了 LABEL 则该命令也会显示LABEL值,甚至连文件系统类型也会显示,当然这个命令后面也可以指定哪个分区。
[root@antong ~]# blkid /dev/vda1 /dev/vda1: LABEL="Test" UUID="4b499d76-769a-40a0-93dc-4a31a59add28" TYPE="ext4"
4.3命令 : umount
这个命令也很简单,后边可以跟挂载点,也可以跟分区名(/dev/hdb1), 但是不可以跟LABEL和UUID。
umount 命令有一个非常有用的选项那就是 ‘-l’, 有时候你会遇到不能卸载的情况,这是因为当前目录为要卸载的分区上,解决办法有两种,一是到其他目录,二是使用 ‘-l’ 选项。
4.4建立一个swap文件增加虚拟内存
swap它类似与windows的虚拟内存,分区的时候一般大小为内存的2倍,如果你的内存超过8G,那么你分16G似乎是没有必要了。分16G足够日常交换了。如果虚拟内存还是不够用,我们再增加一个虚拟的磁盘出来就好了。
其中 “free” 这个命令用来查看内存使用情况, “-m” 表示以M为单位显示。
4.5LVM讲解
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
检查系统中是否安装了LVM管理工具
[root@antong ~]# rpm -qa | grep lvm lvm2-2.02.187-6.el7_9.5.x86_64 lvm2-libs-2.02.187-6.el7_9.5.x86_64
没有安装使用yum方式来安装
[root@antong ~]# yum install -y lvm*
手动添加1个硬盘:sdb 30G
①先开始创建物理卷PV
pvcreate 将物理分区新建为pv
pvs/pvscan 查看系统里有pv的磁盘
pvdisplay 显示系统上面的pv状态
pvremove 删除pv
[root@antong ~]# pvcreate /dev/sdb //使用pvs查看创建的物理卷
②创建卷组vg
[root@antong ~]# vgcreate -s 16M vgEric /dev/sdb
vgcreate [-s xM] vgName /dev/sd …… 新建vg,-s后面接pe的大小(可选),单位是M,G,可以放多块pv
vgextend 扩展vg,就是增加pv
vgs/vgscan 查看系统里有vg的磁盘
vgdisplay 显示系统上面的vg状态
vgremove 删除vg
vgreduce 在vg里删除pv
③创建逻辑卷lv
[root@antong ~]# lvcreate -l 512 -n lvEric vgEric
lvcreate -l pe num /-L size -n lvname vgName 新建lv,-l指定pe的个数,-L指定容量,M,G
lvextend 增加容量
lvs/lvscan 查看系统里有lv的磁盘
lvdisplay 显示系统上面的lv状态
lvremove 删除lv
lvreduce 在lv里减少容量
④格式化新建的LV
[root@antong ~]# mkfs.ext4 /dev/vgEric/lvEric
⑤挂载使用
[root@antong ~]# mount /dev/vgEric/lvEric /mnt/
使用df -h查看挂载信息
删除LVM只需要将顺序反着来即可。
这篇关于磁盘管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南