这里
linux关于磁盘查看及管理命令详解汇总(磁盘资源查看,磁盘资源管理,逻辑卷管理)
一.引子
磁盘管理相对来说,每一家互联网企业只要涉及到技术领域,那就是一个绕不开的点,哪怕你的公司用的是云服务器,磁盘管理的知识也是不可或缺的。笔者将从磁盘资源命令以及LVM逻辑卷管理两方面给大家做一个简单的磁盘管理命令的普及。当然关于命令的更为常见的操作大家可以–help进行更详细的操作。
二.两种分区表介绍
MBR分区
- 硬盘主引导记录MBR由4个部分组成
- 主引导程序(偏移地址0000H–0088H),它负责从活动分区中装载,并运行系统引导程序。
- 出错信息数据区,偏移地址0089H–00E1H为出错信息,00E2H–01BDH全为0字节。 分区表(DPT,Disk Partition、Table)含4个分区项,偏移地址01BEH–01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
- 结束标志字,偏移地址01FE–01FF的2个字节值为结束标志55AA
GPT分区
- GPT:GUID(Globals Unique Identifiers) partitiontable
支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block) - 使用128位UUID(Universally Unique Identifier) 表示磁盘和分区
GPT分区表自动备份在头和尾两份,并有CRC校验位 - UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
三.磁盘资源命令
(一).查看磁盘命令
1.df(简易查看)
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 3631084 14180372 21% /
devtmpfs 485816 0 485816 0% /dev
tmpfs 497948 0 497948 0% /dev/shm
tmpfs 497948 7868 490080 2% /run
tmpfs 497948 0 497948 0% /sys/fs/cgroup
/dev/sr0 4480476 4480476 0 100% /media
/dev/sda1 1038336 137988 900348 14% /boot
tmpfs 99592 0 99592 0% /run/user/0
2.mount(详细查看,也是挂载命令对应卸载命令umount)
[root@localhost ~]# 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=485816k,nr_inodes=121454,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)
3.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
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom /media
4.du(可以指定文件或目录进行查看)
[root@localhost ~]# du
4 ./.cache/abrt
4 ./.cache
0 ./.config/abrt
0 ./.config
0 ./.pki/nssdb
0 ./.pki
19140 .
5.blkid(列出磁盘,uuid,分区类型)
[root@localhost ~]# blkid
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="f0aff8be-731e-4d72-9e8d-1d27e16e15a0" TYPE="xfs"
/dev/sda2: UUID="Zl4AKL-fBRM-KZr9-cO0L-YsLv-vpGj-sK5oxm" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="08afcb33-d767-4577-bf9c-811fffdd5ca2" TYPE="xfs"
/dev/mapper/centos-swap: UUID="f33a3993-d31b-40ef-aaad-2930e345fe4c" TYPE="swap"
6.free(查看磁盘使用量及swap分区大小)
[root@k8s-master01 ~]# free
total used free shared buff/cache available
Mem: 4028696 484992 2811776 10064 731928 3242180
Swap: 0 0 0
total 总物理内存
used 已经使用的物理内存
free 没有使用过的物理内存
shared 多进程共享内存
buff/cache 读写缓存内存,这部分内存是当空闲来用的,当free内存不足时,linux内核会将此内存释放
available 还可以被 应用程序 使用的物理内存
————————————————
版权声明:本文为CSDN博主「浮生若梦l」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32784303/article/details/103694544
(二).操作磁盘命令
1.parted(分区命令,支持2TB以上GPT分区,也支持MBR分区)
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
2.fdisk(分区命令:对于大于2T的分区无法划分,只支持MBR分区表)
[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):
3.gdisk(分区命令,支持GPT分区,以及将MBR修改为GPT分区)
[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
4.mkfs(格式化)
#格式化为 NTFS 分区,先要安装ntfsprogs
$ sudo apt-get install ntfsprogs
#然后执行格式化命令,以格式化 /dev/sda1 分区为例:
$ sudo umount /dev/sda1 # 必须先卸载该分区
$ sudo mkfs.ntfs /dev/sda1 # 格式化为ntfs速度有点慢。
#格式化为ext4/3/2 , 以格式化 /dev/sda1 分区为例:
$ sudo umount /dev/sda1 # 必须先卸载该分区
$ sudo mkfs.ext4 /dev/sda1 # 格式化为ext4分区
$ sudo mkfs.ext3 /dev/sda1 # 格式化为ext3分区
$ sudo mkfs.ext2 /dev/sda1 # 格式化为ext2分区
5.fsck(用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查)
[root@localhost ~]# fsck
fsck,来自 util-linux 2.23.2
6.partprobe(通知系统分区表的变化)
[root@localhost ~]# partprobe --help
Usage: partprobe [OPTION] [DEVICE]...
Inform the operating system about partition table changes.
-d, --dry-run do not actually inform the operating system
-s, --summary print a summary of contents
-h, --help display this help and exit
-v, --version output version information and exit
四.LVM逻辑卷管理
(一).LVM逻辑卷有关概念
-
物理存储介质(The Physical Media)
这里指系统的存储设备,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。 -
物理卷(PV, Physical Volume)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份. -
卷组(VG, Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。 -
逻辑卷(LV, Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
(二).LVM逻辑卷创建
1、 创建物理卷
创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或磁盘创建为物理卷。将整个磁盘创建为物理卷的命令为:
pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
2、 创建卷组
创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:
vgcreate lvm_test /dev/sdc1 /dev/sdb
Volume group "lvm_test" successfully created
vgcreate命令第一个参数是指定该卷组的逻辑名:lvm_test。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate在创建卷组 lvm_test 以外,还设置使用大小为4 MB的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减。PE最小为1KB ,并且必须总是1KB的 2^n 的倍数(使用-s指定,具体请参考man vgcreate)。
3.创建逻辑卷
12、 创建逻辑卷
创建逻辑卷的命令为lvcreate:
lvcreate -L 1500 ?n test lvm_test
Logical volume "test" created
该命令就在卷组lvm_test上创建名字为test,大小为1500M的逻辑卷,并且设备入口为/dev/lvm_test/test (lvm_test为卷组名,test为逻辑卷名)。如果希望创建一个使用全部卷组的逻辑卷,则需要首先察看该卷组的PE数,然后在创建逻辑卷时指定:
以上便是一些关于磁盘管理的基础啦,希望对大家有帮助。
附磁盘管理常见面试题:https://www.jianshu.com/p/d49743517261