linux磁盘管理操作
df命令
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]
选项与参数:
-
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-
-k :以 KBytes 的容量显示各文件系统;
-
-m :以 MBytes 的容量显示各文件系统;
-
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-
-H :以 M=1000K 取代 M=1024K 的进位方式;
-
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-
-i :不用硬盘容量,而以 inode 的数量来显示
实例 1
将系统内所有的文件系统列出来!
[root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc2 9920624 3823112 5585444 41% / /dev/hdc3 4956316 141376 4559108 4% /home /dev/hdc1 101086 11126 84741 12% /boot tmpfs 371332 0 371332 0% /dev/shm
在 Linux 底下如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
实例 2
将容量结果以易读的容量格式显示出来
[root@www ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hdc2 9.5G 3.7G 5.4G 41% / /dev/hdc3 4.8G 139M 4.4G 4% /home /dev/hdc1 99M 11M 83M 12% /boot tmpfs 363M 0 363M 0% /dev/shm
实例 3
将系统内的所有特殊文件格式及名称都列出来
[root@www ~]# df -aT Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/hdc2 ext3 9920624 3823112 5585444 41% / proc proc 0 0 0 - /proc sysfs sysfs 0 0 0 - /sys devpts devpts 0 0 0 - /dev/pts /dev/hdc3 ext3 4956316 141376 4559108 4% /home /dev/hdc1 ext3 101086 11126 84741 12% /boot tmpfs tmpfs 371332 0 371332 0% /dev/shm none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc sunrpc rpc_pipefs 0 0 0 - /var/lib/nfs/rpc_pipefs
实例 4
将 /etc 底下的可用的磁盘容量以易读的容量格式显示
[root@www ~]# df -h /etc Filesystem Size Used Avail Use% Mounted on /dev/hdc2 9.5G 3.7G 5.4G 41% /
fdisk
fdisk 是 Linux 的磁盘分区表操作工具。
语法:
fdisk(选项)(参数)
选项与参数:
-b 分区⼤⼩ -l 列出指定的外围设备的分区表状况 -s 分区编号,将指定的分区⼤⼩输出到标准输出上,单位为区块 -u 搭配-l 显⽰,会⽤分区数⽬取代柱⾯数⽬,来表⽰每个分区的起始地址 -v 显⽰版本信息
fdisk交互指令说明 | |||
---|---|---|---|
命令 | 说 明 | 命令 | 说 明 |
a | 设置可引导标记 | v | 验证分区表 |
b | 编辑bsd磁盘标签 | w | 保存退出 |
c | 设置DOS操作系统兼容标记 | x | 附加功能 |
d | 删除一个分区 | ||
l | 显示已知文件系统类型。 | ||
m | 显示帮助菜单 | ||
n | 新建分区 | ||
o | 建立空白DOS分区表 | ||
p | 显示分区列表 | ||
q | 不保存退出 | ||
s | 新建空白SUN磁盘标签 | ||
t | 改变一个分区系统ID | ||
u | 改变显示记录单位 |
分区步骤:
n——p主——1分区号——1起始柱面——分区大小 +n(数字)(容量指示(G、MB、KM))
n——e扩展——2分区号——起始柱面(默认直接回车)——柱面(默认直接回车)(所有剩余空间都扩展分区)
n——l逻辑——不用指定分区号——起始柱面(默认直接回车)——分区大小 +n(数字)(容量指示(G、MB、KM))——w(保存退出)
注意:Linux系统中硬盘1~4号分区号是保留下来给主分区和扩展分区使用的,逻辑分区不可以占用1~4号分区编号,有时间因为系统分区表正忙,则需要重新启动系统之后才能生效,也可以用partprobe命令强制重读所有分区文件,重新挂载分区内所有分区。
磁盘格式化
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs
(make filesystem) 命令。
语法:
mkfs [-t 文件系统格式] 装置文件名
[root@dfd001 ~]# mkfs mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs 例如:mkfs -t ext4 /dev/sdb1
mount
用于挂载Linux系统外的文件。
mount命令格式: mount [-l]
查询系统已经挂载的设备。
mount命令格式2: mount -a
依据配置文件/etc/fstab的内容,自动挂载。
mount命令格式3: mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] /
选项: -t 文件系统 : 加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统。
-L 卷标名:挂载指定卷标分区,不是按照设备文件挂载
-o 特殊选项:可以指定挂载的额外选项,不如读写权限、同步异步等,如果不指定则默认值生效。
mount命令格式4: mount -t iso9660 /dev/cdrom /mnt/cdrom
挂载光驱
光驱卸载: umount /dev/sro 和 umount /mnt/cdrom
注意:光驱在关机和使用完毕后一定要卸载,附则可能系统启动不了
mount命令格式5: mount -t vfat /dev/sdb1/mnt/usb/
挂载U盘
注意:如果U盘是乱码需要挂载时候加入中文编码和字体命令如下:
mount -t vfat -o incharset=utf8 /dev/sdb1 / mnt/usb
U盘卸载: umount /mnt/usb
mount**命令格式5: mount -t ntfs-3g 分区设备文件没那个 挂载点**
挂载NTFS分区
注意:Linux系统中需要先安装NTFS-3G插件,安装完成后需要挂载分区文件系统不是ntfs,而是ntfs-3g。
列出块设备信息
命令格式:lsblk
自动挂载分区
修改分区自动挂载文件:vim /etc/fstab
解释:第一列:设备文件名 第二列:挂载点 第三列:文件系统 第四列:挂载选项
第五列: 1 是否可以被备份 0 不备份 1 每天备份 2不定期备份
第六列: 2 是否检测磁盘 fsck 0 不检测 1 启动时检测 2 启动后检测
如果/etc/fstab错误,修复步骤:第一步根据提示输入root管理员密码,第二部因为没有写入权限,需要用命令或许写入权限:mount -o remount,rw/,然后重新把分区挂载,就可以修正/etc/fstab/文件错误。
LVMP 逻辑卷管理
-
简介LVM是Logical Volume Manager 的简称,中文就是逻辑卷管理。
物理卷(PV,Physical Volume):就是真正的物理硬盘或分区
卷组(VG,Volume Group):将多个物理卷合起来就组成了卷组,组成同一个卷组的物理卷可以是同一个硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一个逻辑硬盘。
逻辑卷(LV,Logical Volume):卷组是一个逻辑硬盘,硬盘必须分区之后才能使用,这个分区我们称作逻辑卷。逻辑卷可以格式化和写入数据。我们可以把逻辑卷想象成为分区。
物理扩展(PE,Physical Extend):PE 是用来保存数据的最小单元,我们的数据实际上都是写入 PE 当中,PE 的大小是可以配置的,默认是 4MB。
2.建立LVM的步骤
首先需要把物理硬盘分成分区,当然也可以是整块物理硬盘,然后把物理分区建立成为物理卷(PV),也可以直接把整块硬盘都建立为物理卷,接下来把物理卷整合成为卷组(VG)。卷组就已经可以动态的调整大小了,可以把物理分区加入卷组,也可以把物理分区从卷组中删除,最后就是把卷组再划分成为逻辑卷(LV),当然逻辑卷也是可以直接调整大小的。我们说逻辑卷可以想象成为分区,所以也需要格式化和挂载。
硬盘分区
更改硬盘ID
创建方式就是使用fdisk交互命令,需要主要是的是硬盘ID要改成LVM的ID号8e。
建立物理卷
pvcreate
将物理硬盘分区初始化为物理卷
语法
pvcreate(选项)(参数)
选项
-f:强制创建物理卷,不需要用户确认; -u:指定设备的UUID; -y:所有的问题都回答“yes”; -Z:是否利用前4个扇区。
参数
物理卷:指定要创建的物理卷对应的设备文件名。
实例
查看磁盘信息:
[root@localhost ~]# fdisk -l Disk /dev/hda: 41.1 GB, 41174138880 bytes 255 heads, 63 sectors/track, 5005 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 1288 10241437+ 83 Linux /dev/hda3 1289 1925 5116702+ 83 Linux /dev/hda4 1926 5005 24740100 5 Extended /dev/hda5 1926 2052 1020096 82 Linux swap / Solaris /dev/hda6 2053 2235 1469916 8e Linux LVM /dev/hda7 2236 2418 1469916 8e Linux LVM /dev/hda8 2419 2601 1469916 8e Linux LVM /dev/hda9 2602 2784 1469916 8e Linux LVM
检查有无 PV 在系统上,然后将/dev/hda6
到/dev/hda9
建立成为PV格式
[root@localhost ~]# pvscan No matching physical volumes found #找不到任何的 PV 存在!
将6-9分区转成pv,注意大括号的用途:
[root@localhost ~]# pvcreate /dev/hda{6,7,8,9} Physical volume "/dev/hda6" successfully created Physical volume "/dev/hda7" successfully created Physical volume "/dev/hda8" successfully created Physical volume "/dev/hda9" successfully created
这就分別表示每个 PV 的信息与系统所有 PV 的信息:
[root@localhost ~]# pvscan PV /dev/hda6 lvm2 [1.40 GB] PV /dev/hda7 lvm2 [1.40 GB] PV /dev/hda8 lvm2 [1.40 GB] PV /dev/hda9 lvm2 [1.40 GB] Total: 4 [5.61 GB] / in use: 0 [0 ] / in no VG: 4 [5.61 GB]
更详细的列示出系统上面每个 PV 信息:
[root@localhost ~]# pvdisplay "/dev/hda6" is a new physical volume of "1.40 GB" --- NEW Physical volume --- PV Name /dev/hda6 #实际的 partition 分区名称 VG Name #因为尚未分配出去,所以空白! PV Size 1.40 GB #就是容量说明 Allocatable NO #是否已被分配,结果是 NO PE Size (KByte) 0 #在此 PV 內的 PE 大小 Total PE 0 #共分割出几个 PE free PE 0 #沒被 LV 用掉的 PE Allocated PE 0 #尚可分配出去的 PE 数量 PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN ....(底下省略)....
删除物理卷:
[root@localhost ~]# pvremove /dev/sdb2 Labels on physical volume "/dev/sdb2" successfully wiped
修改物理卷属性:
[root@localhost ~]# pvchange -x n /dev/sdb1 #禁止分配指定物理卷上的PE Physical volume "/dev/sdb1" changed 1 physical volume changed / 0 physical volumes not changed
建立卷组
命令格式:vgcreate [选项] 卷组名 物理卷名
选项:-s PE 大小:指定 PE 的大小,单位可以是 MB,GB,TB 等。如果不写默认 PE 大小事 4MB。
实例
使用vgcreate命令创建卷组 “vg1000”,并且将物理卷/dev/sdb1
和/dev/sdb2
添加到卷组中。在命令行中输入下面的命令:
[root@localhost ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2 #创建卷组"vg1000"
查看物理卷命令格式: vgscan和 vgdisplay
增加卷组容量: vgextend 卷组名 物理卷名
[root@dfd001 ~]# vgextend centos /dev/sdb1 Volume group "centos" successfully extended [root@dfd001 ~]# vgextend centos /dev/sdb2 Volume group "centos" successfully extended [root@dfd001 ~]# pvscan PV /dev/sda2 VG centos lvm2 [<39.00 GiB / 4.00 MiB free] PV /dev/sdb1 VG centos lvm2 [<20.00 GiB / <20.00 GiB free] PV /dev/sdb2 VG centos lvm2 [<40.00 GiB / <40.00 GiB free] Total: 3 [<98.99 GiB] / in use: 3 [<98.99 GiB] / in no VG: 0 [0 ]
减小卷组容量: vgreduce 卷组名 物理卷名
删除卷组:vgremove 卷组名
建立逻辑卷
命令格式: lvcreate [选项] [-n 逻辑卷名] 卷组名
选项:--L 容量:指定逻辑卷大小,单位 MB,GB,TB 等
-l 个数:按照 PE 个数指定逻辑卷大小,这个参数需要换算容量,太麻烦
-n 逻辑卷名:指定逻辑卷名
查看逻辑卷命令:lvscan 和 lvdisplay
调整逻辑卷大小命令
命令格式:lvresize [选项] 逻辑卷设备文件名
选项:-L 容量:安装容量调整大小,单位为“kKmMgGtT”字节。使用+代表增加空间,-号代表减少空间。如果直接写容量,代表设定逻辑卷大小为指定大小。
-l 个数:按照 PE 个数调整逻辑卷大小
实例
使用lvresize命令调整最大的逻辑卷大小。在命令行中输入下面的命令:
[root@localhost ~]# lvresize -L +200M /dev/vg1000/lvol0 #将逻辑卷空间增加200M
输出信息如下:
Extending logical volume lvol0 to 280.00 MB Logical volume lvol0 successfully resized
扩容要扩容逻辑卷
lvextend命令用于逻辑卷在线扩容,也就是说lvextend
扩容是不需要停机的,应用服务也不需要关闭,其语法格式如下:
lvextend [参数] LogicalVolume[Path] [ PhysicalVolumePath... ]
常用参数:
-l + :指定逻辑卷的LE个数,如 -l +200 -L + :表示增加多少空间,如 -L +15G ,单位有bBsSkKmMgGtTpPeE -l +100%FREE :表示增加vg的全部可用空间 123
注意:lvextend
扩展后只是扩展了lv的大小,而此时文件系统并未感知到,所有还需要使用xfs_growfs、resize2fs
等命令来扩展文件系统,xfs_growf
命令是扩展xfs
文件系统,resize2fs
是扩展ext4
文件系统。
实例:
[root@dfd001 ~]# lvextend -l +100%FREE /dev/centos/root Size of logical volume centos/root changed from 36.99 GiB (9470 extents) to <96.99 GiB (24829 extents).
调整完大小后使用
xfs_growf
命令是扩展xfs
文件系统,resize2fs
是扩展ext4
文件系统。
命令格式:xfs_growf [选项] [设备文件名] [调整的大小]
命令格式:resize2fs [选项] [设备文件名] [调整的大小]
选项:-f: 强制调整
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节
设备文件名:指定调整哪个分区的大小
调整的大小:指定把分区调整到多大,要加 M,G 等单位。如果不加大小,会使用整个分区
xfs_growf`命令是扩展`xfs`文件系统,实例 [root@dfd001 ~]# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2424320 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=9697280, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=4735, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9697280 to 25424896
删除逻辑卷命令:
命令格式:lvremove 逻辑卷设备文件名
注意:在有数据的情况下,不建议修改、删除逻辑卷等操作,因为很有可能要丢失数据,或报错等情况。