一、df命令
df命令(disk filesystem)用于查看文件系统的使用情况,包括已挂载磁盘的总容量、使用容量、剩余容量等,可以不加参数,默认以KB为单位显示。
[root@aming01 ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 29140072 1003020 28137052 4% /
devtmpfs 752280 0 752280 0% /dev
tmpfs 762124 0 762124 0% /dev/shm
tmpfs 762124 8772 753352 2% /run
tmpfs 762124 0 762124 0% /sys/fs/cgroup
/dev/sda1 201380 99156 102224 50% /boot
tmpfs 152428 0 152428 0% /run/user/0
第一列是文件系统,也就是分区名字;第二列是磁盘的总大小,单位KB
-h:使用合适单位显示;
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 980M 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
-i:查看inodes使用情况;
[root@aming01 ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 14577152 26532 14550620 1% /
devtmpfs 188070 379 187691 1% /dev
tmpfs 190531 1 190530 1% /dev/shm
tmpfs 190531 458 190073 1% /run
tmpfs 190531 16 190515 1% /sys/fs/cgroup
/dev/sda1 102400 327 102073 1% /boot
tmpfs 190531 1 190530 1% /run/user/0
-k、-m:分别以KB、MB单位显示。
[root@aming01 ~]# df -k
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 29140072 1003020 28137052 4% /
devtmpfs 752280 0 752280 0% /dev
tmpfs 762124 0 762124 0% /dev/shm
tmpfs 762124 8772 753352 2% /run
tmpfs 762124 0 762124 0% /sys/fs/cgroup
/dev/sda1 201380 99156 102224 50% /boot
tmpfs 152428 0 152428 0% /run/user/0
[root@aming01 ~]# df -m
文件系统 1M-块 已用 可用 已用% 挂载点
/dev/sda3 28458 980 27478 4% /
devtmpfs 735 0 735 0% /dev
tmpfs 745 0 745 0% /dev/shm
tmpfs 745 9 736 2% /run
tmpfs 745 0 745 0% /sys/fs/cgroup
/dev/sda1 197 97 100 50% /boot
tmpfs 149 0 149 0% /run/user/0
二、du命令
du 命令(disk useage)用来查看某个目录或文件所占文件大小;
格式为du [-abckmsh] [文件或目录名]
[root@aming01 ~]# du
8 ./.ssh
0 ./666
44 .
-a:表示全部文件和目录的大小都列出来;
[root@aming01 ~]# du -a
4 ./.bash_logout
4 ./.bash_profile
4 ./.bashrc
4 ./.cshrc
4 ./.tcshrc
4 ./anaconda-ks.cfg
12 ./.bash_history
4 ./.ssh/authorized_keys
4 ./.ssh/known_hosts
8 ./.ssh
0 ./666
44 .
-b :表示列出的值以B为单位输出;
-k:表示以KB为单位输出;
[root@aming01 ~]# du -k
8 ./.ssh
0 ./666
44 .
-m:表示以MB为单位输出;
-h:表示系统自动调节单位;
[root@aming01 ~]# du -h
8.0K ./.ssh
0 ./666
44K .
-c:表示最后加总;
[root@aming01 ~]# du -c
8 ./.ssh
0 ./666
44 .
44 总用量
-s:表示只列出总和。
[root@aming01 ~]# du -s
44 .
fdisk命令
fdisk是Linux下硬盘的分区工具,非常实用的一个命令,但是只能划分小于2TB的分区,一块磁盘最多有4个主分区,或者最多3个主分区和一个扩展分区,扩展分区下可以建立多个逻辑分区.。该命令的格式为fdisk [-l] [设备名称]。选项-l后面不加设备名称,就会直接列出系统所有的磁盘设备以及分区列表;加上设备名称,则会列出该设备的分区表。
[root@aming01 ~]# fdisk -l
磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c0eb1
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 62914559 29154304 83 Linux
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 #刚刚添加的磁盘,还未分区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
fdisk显示磁盘分区信息的含义
第一列:分区设备文件所在的路径。
第二类:是否为活动分区。如果是则显示为星号‘*’
第三列:分区的起始扇区。
第四列:分区的结束扇区。
第五列:该分区的block数量
第五列:分区ID表示这个分区的类型。
第六列:分区的文件系统,这里显示的为大类,Linux有很多种文件系统。
对新增的一块磁盘/dev/sdb使用fdisk命令,进行操作,再输入m获取帮助信息
[root@aming01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x554874e2 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
我们常用的命令有:
n:表示建立一个新的分区;
p:表示打印当前磁盘的分区情况;
w: 保存;
d:删除一个分区。
输入命令p,则会发现没有分区
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2
设备 Boot Start End Blocks Id System
在输入命令n,出现两种选择,p:主分区(最多4个),e:扩展分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
这时输入p,来创建4个主分区(如果操作中输入有误,按Ctrl+u清除)
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1 #输入分区号
起始 扇区 (2048-41943039,默认为 2048): #这里按enter继续
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G #输入大小
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
创建成功
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 14682111 2097152 83 Linux
/dev/sdb3 14682112 23070719 4194304 83 Linux
/dev/sdb4 23070720 31459327 4194304 83 Linux
因为创建了4个主分区,如果再创建就会提示错误,需要删除
命令(输入 m 获取帮助):n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.
命令(输入 m 获取帮助):d
分区号 (1-4,默认 4):4
分区 4 已删除
创建扩展分区
输入n后选择e,创建扩展分区,起始扇区按enter继续,在分区大小我们保持默认按enter,即是将剩下的空间分给它
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
已选择分区 4
起始 扇区 (23070720-41943039,默认为 23070720):
将使用默认值 23070720
Last 扇区, +扇区 or +size{K,M,G} (23070720-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 9 GiB
输入p,查看分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 14682111 2097152 83 Linux
/dev/sdb3 14682112 23070719 4194304 83 Linux
/dev/sdb4 23070720 41943039 9436160 5 Extended
创建逻辑分区
逻辑分区的编号是从5开始,并且是自动排列的。
比如有两个逻辑分区,5和6, 如果把分区编号5的逻辑分区删除了,那么分区编号6的逻辑分区会自动改为编号5
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (23072768-41943039,默认为 23072768):
将使用默认值 23072768
Last 扇区, +扇区 or +size{K,M,G} (23072768-41943039,默认为 41943039):+5G
分区 5 已设置为 Linux 类型,大小设为 5 GiB
输入p,查看分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 14682111 2097152 83 Linux
/dev/sdb3 14682112 23070719 4194304 83 Linux
/dev/sdb4 23070720 41943039 9436160 5 Extended
/dev/sdb5 23072768 33558527 5242880 83 Linux
设置好我们的分区后:输入w保存退出
三、磁盘分区
硬盘可以被分成一个或多个逻辑磁盘,称为分区
Linux至少需要一个分区,即用做它的root文件系统。也就是根分区。
首先增加虚拟磁盘,鼠标右击当前虚拟机的选项卡,选择设置
点击左下方的添加按钮,此时会弹出“添加硬件向导”对话框,点下一步;
选择硬件类型,保持“硬盘”默认,点下一步;
选择磁盘类型对话框也保持默认,点下一步;
选择磁盘对话框也保持默认,点下一步;
在指定磁盘容量对话框里要修改一下,设定最大磁盘大小为20GB,然后选择将虚拟磁盘拆分成多个文件,点下一步;
继续点下一步,然后更改你所需的名字(这里保存默认)点击完成按钮,最终添加新的虚拟磁盘。新添加的虚拟磁盘需要系统重启后才能被识别到。
四、磁盘格式化
所谓格式化,就是安装文件系统,Windows下的文件系统有FAT32和NTFS,CentOS 7以XFS作为默认的文件系统,(CentOS 6的文件系统为ext4;CentOS 5的文件系统为ext3;更早的为ext2)可以查看系统支持的文件系统格式,/和/boot都是XFS格式
硬盘需要分区,创建文件系统后才能正常存放数据,而创建文件系统的过程就是格式化
1、格式化分区可以使用mke2fs 命令,但是这个命令不能将分区格式化为xfs类型;
2、可以使用mkfs.xfs 命令将分区格式化为xfs类型;
3、mkfs.ext4 可以将分区格式化为ext4类型;
4、mkfs.ext3 可以将分区格式化为ext3 类型
mke2fs命令
用法:mke2fs [选项] [参数]
-b<区块大小>:指定区块大小,单位为字节;
-c;检查是否有损坏的区块;
-f<不连续区段大小>:指定不连续区段的大小,单位为字节;
-F:不管指定的设备为何,强制执行mke2fs;
-i<字节>:指定"字节/inode"的比例;
-N<inode数>:指定要建立的inode数目;
-l<文件>:从指定的文件中,读取文件西中损坏区块的信息;
-L<标签>:设置文件系统的标签名称;
-m<百分比值>:指定给管理员保留区块的比例,预设为5%;
-M:记录最后一次挂入的目录;
-q:执行时不显示任何信息;
-r:指定要建立的ext2文件系统版本;
-R=<区块数>:设置磁盘阵列参数;
-S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap;
-v:执行时显示详细信息;
-V:显示版本信息
-t :表示用来指定文件系统的类型,可以是ext2,ext3,也可以是ext4,xfs不可以。
指定文件系统格式为ext4,mke2fs ext4 /dev/sdb1等同于mkfs.ext4 /dev/deb1
[root@aming01 ~]# mke2fs -t ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@aming01 ~]# mke2fs -t xfs /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
Your mke2fs.conf file does not define the xfs filesystem type.
Aborting...
如果想把分区格式化成XFS类型,需要使用 mkfs.xfs 命令;
[root@aming01 ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
-b:表示分区时指定每个数据区块占用的空间大小,目前,每个数据块支持1024B,2048B以及4096B;(如果专门用来储存视频和高清图片的话数据区块可以改为8192B,这样会加快提取速度)
[root@aming01 ~]# mke2fs -b 2048 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=547356672
640 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,
2048000, 3981312, 5619712, 10240000
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
-m:表示指定给管理员保留区块的比例,默认预设为5%
[root@aming01 ~]# mke2fs -m 1 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
52428 blocks (1.00%) reserved for the super user #其中的blocks (1.00%)
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
-i 选项:指定inode的大小, 默认为4个block生成1个inode ,根据块大小来设置inode,最低需要一个块一个inode
[root@aming01 ~]# mke2fs -i 2048 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
10485760 inodes, 5242880 blocks
262090 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2159033344
320 block groups
16424 blocks per group, 16424 fragments per group
32768 inodes per group
Superblock backups stored on blocks:
16424, 49272, 82120, 114968, 147816, 410600, 443448, 804776, 1330344,
2053000, 3991032
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
五、磁盘挂载
磁盘格式化完成后需要挂载后才能进行使用
在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据时,则都会写到该分区中。
注意:在磁盘挂载分区前,挂载点下必须是空目录,因为磁盘挂载后该目录下之前的东西就看不到了,只有卸载分区后才能看到。
1、mount命令进行挂载:
[root@aming01 ~]# mount /dev/sdb /mnt/
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 980M 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
/dev/sdb 18G 49M 17G 1% /mnt
参考他人:
-o 选项:指定挂载参数
挂载参数:表示挂载后该分区的一些属性。
remount:重新挂载
rw:可读写
ro:只读
suid:可以设置setuid权限
nosuid:不可设置setuid权限
exec:可执行
noexec:不可执行
auto:自动挂载
noauto:不会自动挂载
user:普通用户可挂载
nouser:普通用户不可挂载
async 写入磁盘的数据非实时同步 sync:实时同步写入磁盘数据
例子:
将/etc/sdb重新挂载为一个只读分区。
[root@long01 ~]# mount -o ro,remount /dev/sdb #重新挂载不需要指定挂载点。可以使用逗号隔开多个挂载参数。
[root@long01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 17G 2.8G 15G 17% /
devtmpfs 983M 0 983M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 8.6M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 1014M 119M 896M 12% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb 20G 176K 20G 1% /mnt
#无法向这个分区写入数据了。
[root@long01 ~]# touch test.txt /mnt
touch: 正在设置"/mnt" 的时间: 只读文件系统
#重新挂载为rw就可以写入数据了
[root@long01 ~]# mount -o remount,rw /dev/sdb
[root@long01 ~]# touch test.txt /mnt
2、umount命令
umount命令用来卸载:umount /dev/sdb 或者 umount /mnt/(通过挂载点卸载)
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 980M 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
/dev/sdb 18G 49M 17G 1% /mnt
[root@aming01 ~]# umount /dev/sdb /mnt
umount: /mnt:未挂载
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 980M 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
加上-l选项,无需退出分区所在的目录就可以直接强制卸载
配置开机自动挂载
先查看/etc/fstab配置文件
# /etc/fstab
# Created by anaconda on Tue Apr 24 23:32:27 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=aca74be8-4a6f-46cc-a83d-336ed02907b4 / xfs defaults 0 0
UUID=e7dff395-1ea8-4f3e-9f0e-6a8d4d33b149 /boot xfs defaults 0 0
UUID=65ffc63f-56f1-46e2-bcc9-6078f56d6786 swap swap defaults 0 0
第一列是分区标识,可以写分区的label,UUID,也可以写分区名;
第二列是挂载点;
第三列是分区的格式;
第四列是mount的挂载参数;
第五列的数字表示是否被dump备份,1是备份,0没备份;
第六列的数字表示开机是否自检磁盘,1和2检测,0不检测。
在UUID下添加,就完成了开机自动挂载
/dev/sdb /sdb/ xfs defaults 0 0
六、手动增加swap空间
1、建立swapfile,dd命令用于操作磁盘(可读写),if指定源,of指定目标文件,bs定义块的大小,count磁盘大小
[root@aming01 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.187229 秒,560 MB/秒
2、格式化为swap 格式
[root@aming01 ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=41ba2fd1-c9be-4228-a810-205c00d728c5
3、启用刚创建的swap文件,然后设置swap文件权限,在这过程中,使用free命令查看是否增加swap空间成功
[root@aming01 ~]# free -m
total used free shared buff/cache available
Mem: 1488 116 1164 8 207 1198
Swap: 2047 0 2047
[root@aming01 ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@aming01 ~]# chmod 600 /tmp/newdisk
[root@aming01 ~]# free -m
total used free shared buff/cache available
Mem: 1488 116 1163 8 207 1198
Swap: 2147 0 2147
swap空间从2047增加到2147,增加成功
卸载swap文件
[root@aming01 ~]# swapoff /tmp/newdisk
[root@aming01 ~]# free -m
total used free shared buff/cache available
Mem: 1488 116 1164 8 207 1198
七、lvm讲解
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制
LVM可以方便的让我们对分区扩容或缩容,但是目前运用的并不是很多,因为它的局限性较大,安全性较低,操作起来比较复杂等因素,现在很多公司不再采用这种分区管理工具。其工作原理如下图所示
具体操作步骤是:给磁盘划分分区→将分区做成物理卷 →将物理卷做成卷组→在卷组的基础上划分逻辑卷→
格式化→挂载使用
1、准备磁盘分区
安装lvm命令: yum install lvm2
先创建3个分区
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G
分区 3 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaa49a44c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
改变分区类型为8e
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):2,3
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaa49a44c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
2、创建物理卷
命令pvcreate,创建过程中,如果没有自动生成 /dev/sdb1文件,这是只要输入partprobe命令即可立即生成
[root@aming01 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
PS:在运行命令# pvcreate /dev/sdb1时,出现未找到命令,这时就要安装软件包,这里如果忘记软件包的名字,可以根据命令搜索软件包名称 yum provides “/*pvcreate” ,搜索到正确软件包名称lvm2,然后安装 yum install -y lvm2
物理卷创建完成后,可以用命令pvdisplay查看
[root@aming01 ~]# pvdisplay
"/dev/sdb3" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID UQUhQk-uqwV-La5d-mBBJ-nb1S-EaBA-U15gwc
使用命令pvs,更加简单直观
[root@aming01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
3、创建卷组
命令vgcreate(volume group create),命令vgremove删除卷组
[root@aming01 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created
用命令vgdisplay和命令vgs查看信息
[root@aming01 ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.99 GiB
PE Size 4.00 MiB
Total PE 510
Alloc PE / Size 0 / 0
Free PE / Size 510 / 1.99 GiB
VG UUID nU0zOd-SwFX-arBO-I54F-vFo7-BCoY-1SQ1EC
[root@aming01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 1.99g 1.99g
4、创建逻辑卷
命令lvcreate(logical volume create)
-L:指定逻辑卷的大小;
-n:指定逻辑卷的名称
[root@aming01 ~]# lvcreate -L 100M -n lv1 vg1
Logical volume "lv1" created.
删除逻辑卷
[root@aming01 ~]# lvremove /dev/vg1/lv1
格式化成ext4
[root@aming01 ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
挂载
[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
这里我们monut的是/dev/vg1/lv1,显示的却不是这个文件,查看一下,指向都是同一文件
[root@aming01 ~]# ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 5月 23 04:21 /dev/vg1/lv1 -> ../dm-0
[root@aming01 ~]# ls -l /dev/mapper/vg1-lv1
lrwxrwxrwx. 1 root root 7 5月 23 04:21 /dev/mapper/vg1-lv1 -> ../dm-0
[root@aming01 ~]# mkdir /mnt/123
[root@aming01 ~]# touch /mnt/456.txt
[root@aming01 ~]# echo "11111111"> /mnt/456.txt
扩容逻辑卷
lvresize -L 300M /dev/vg1/lv1 重新设置卷大小;
e2fsck -f /dev/vg1/lv1 检查磁盘错误 (ext4执行);
resize2fs /dev/vg1/lv1 更新逻辑卷信息(ext4执行);
xfs_growfs /dev/vg1/lv1 xfs文件系统需要执行。
命令lvresize:,因为在挂载状态,所以要先umount比较规范
-L:指定扩容大小
[root@aming01 ~]# umount /mnt/
[root@aming01 ~]# lvresize -L 300M /dev/vg1/lv1
New size (75 extents) matches existing size (75 extents).
检查磁盘错误 (ext4执行): e2fsck -f
[root@aming01 ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks
更新逻辑卷信息(ext4执行),扩容之后,文件也不丢失
[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/vg1/lv1 is now 307200 blocks long.
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
/dev/mapper/vg1-lv1 287M 2.1M 270M 1% /mnt
缩容(xfs不支持缩容)
先umount
e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext)
resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext)
lvresize -L 100M /dev/vg1/lv1 重新设置卷大小
先umount,然后检查磁盘错误
[root@aming01 ~]# umount /mnt/
[root@aming01 ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks
更新逻辑卷信息(ext4执行)
[root@aming01 ~]# resize2fs /dev/vg1/lv1 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 102400 blocks long.
重新设置逻辑卷大小
[root@aming01 ~]# lvresize -L 100M /dev/vg1/lv1
WARNING: Reducing active logical volume to 100.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).
Logical volume vg1/lv1 successfully resized.
[root@aming01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 100.00m
挂载
[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 86M 2% /mnt
扩容逻辑卷(xfs)
xfs扩容不需要卸载分区,xfs不支持缩容操作
先将逻辑卷格式化为xfs格式
[root@aming01 ~]# umount /mnt/
[root@aming01 ~]# mkfs.xfs -f /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
挂载
[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# mkdir /mnt/666
[root@aming01 ~]# touch /mnt/777.txt
[root@aming01 ~]# echo "1111">/mnt/777.txt
[root@aming01 ~]# ls /mnt/
666 777.txt
[root@aming01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 100.00m
重新设置逻辑卷大小
[root@aming01 ~]# lvresize -L 400M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 400.00 MiB (100 extents).
Logical volume vg1/lv1 successfully resized.
更新xfs逻辑卷信息
[root@aming01 ~]# xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 25600 to 102400
[root@aming01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.1G 27G 4% /
devtmpfs 735M 0 735M 0% /dev
tmpfs 745M 0 745M 0% /dev/shm
tmpfs 745M 8.6M 736M 2% /run
tmpfs 745M 0 745M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 149M 0 149M 0% /run/user/0
/dev/mapper/vg1-lv1 397M 5.6M 392M 2% /mnt
扩容卷组
fdisk /dev/sdb 新增/dev/sdb3 2G
pvcreate /dev/sdb3
vgextend vg1 /dev/sdb3
lvresize -L 100M /dev/vg1/lv1 重新设置卷大小
命令vgextend
[root@aming01 ~]# vgextend vg1 /dev/sdb3
Volume group "vg1" successfully extended
[root@aming01 ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <2.99 GiB
PE Size 4.00 MiB
Total PE 765
Alloc PE / Size 100 / 400.00 MiB
Free PE / Size 665 / <2.60 GiB
VG UUID nU0zOd-SwFX-arBO-I54F-vFo7-BCoY-1SQ1EC
八、磁盘故障小案例
做完LVM实验之后,重启后可能会发现不能进入系统,故障如下:
先输入root密码回车,然后编辑# vi /etc/fstab文件;将光标移至红框那一行,按dd删除这一行,:wq保存退出,重启之后就能正常使用
扩展:
raid讲解 :https://blog.csdn.net/caipeichao2/article/details/52661825
dd测试磁盘性能:https://blog.csdn.net/daiyudong2020/article/details/53157558
dd备份硬盘数据:http://zuyunfei.com/2015/06/04/linux-dd/
阿里云磁盘扩容文档:https://help.aliyun.com/document_detail/25452.html
parted分区gpt格式:http://www.apelearn.com/bbs/thread-7243-1-1.html
存储与服务器的连接方式:https://blog.csdn.net/JesseYoung/article/details/38367217