linux-磁盘管理
命令 该命令的注释
fdisk -l 查看当前磁盘的分区状况
fdisk /dev/sda 让硬盘进入分区模式,所分的磁盘在 /dev 下的 sda 这块磁盘
partprobe 将分区信息读到内核中
mkfs.ext2 /dev/sda5 将 /dev下的 sda5 磁盘格式化为 ext2 的格式类型
mount /dev/sda5/test 将 /dev/sda5 挂载到 test 中
umount /dev/sda5或者umount /test 卸载已经挂载的 /dev/sda5 磁盘也就是作为挂载接口的test目录
mount 查看当前磁盘的详细挂载信息
df -hT 查看磁盘的信息(推荐)
blkid 查看对应分区的UUID(编号)
一、基本分区
磁盘简介:
1.1类型:原理区分:机械硬盘、固态硬盘
1.2接口:早期IDE、现在ATA
1.3术语:
盘片-- 盘片(disk)是硬盘中承载数据存储的介质
柱面-- 硬盘柱面是硬盘的一个物理结构部分。硬盘的主体部分是由铝合金材料制成的涂以磁性介质的数个圆形盘片,每个盘片的两面涂有磁涂层,用来记录数据。
扇区-- 硬 盘的内部圆形金属盘片被磁道划分成若干个 扇形 区域,用以存储数据
磁道-- 当磁盘旋转时,磁头若保持在一个位置上,则每个 磁头 都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。
1.4 命名
STTA(串口)
(1)/dev/sda
/dev:设备文件目录 s:代表sata就是串口
d:磁盘 a:第一块
(2)/dev/sdb
其他与(1)相同 b:第二块
abcdefghijk......共26个字母
1.5分区方式
MBR(主引导记录):支持最大的磁盘容量<2TB,设计时分配4个分区 如果希望超过四个分区,需要放弃主分区,改为扩展分区和逻辑分区
GPT:支持大于2T的硬盘,支持128个分区
2、管理硬盘
2.1添加硬盘
2.2 管理磁盘流程三部曲 :
新硬盘先 分区MB->格式化/文件系统filesystem->挂载mount 隔间--->放家具--->加个门/目录
2.3查看磁盘信息
[root@localhost ~]# ll /dev/sd*
//查看磁盘信息(方法1)
brw-rw----. 1 root disk 8, 0 8月 2 10:21 /dev/sda
brw-rw----. 1 root disk 8, 1 8月 2 10:21 /dev/sda1
brw-rw----. 1 root disk 8, 2 8月 2 10:21 /dev/sda2
brw-rw----. 1 root disk 8, 16 8月 2 10:21 /dev/sdb
brw-rw----. 1 root disk 8, 32 8月 2 10:21 /dev/sdc
brw-rw----. 1 root disk 8, 48 8月 2 10:21 /dev/sdd
brw-rw----. 1 root disk 8, 64 8月 2 10:21 /dev/sde
brw-rw----. 1 root disk 8, 80 8月 2 10:21 /dev/sdf
[root@localhost ~]# lsblk
//查看磁盘信息(方法2)
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]
sdb 8:16 0 2G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 5G 0 disk
sdf 8:80 0 5G 0 disk
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64
2.4创建分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x2295faa4 创建新的 DOS 磁盘标签。
操作: 按n
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
操作: 按p
Select (default p): p
分区号 (1-4,默认 1):
操作: 输入1~4其中一个
分区号 (1-4,默认 1):1
起始 扇区 (2048-4194303,默认为 2048):
操作: 回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
操作: +1G
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
操作: w //保存
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# partprobe /dev/sdb
//载入内核
[root@localhost ~]# fdisk -l /dev/sdb
//查看分区
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2fa886de
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
[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]
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 1G 0 part
sdc 8:32 0 5G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 5G 0 disk
sdf 8:80 0 5G 0 disk
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64
——————————————————————
2.5 创建文件系统 ( 房子里的家具 )
[root@localhost ~]# mkfs.ext4 /dev/sdb1
//格式化
m:make(创造) f:file(文件) s:system(系统)
ext4:wxtend4(扩展,文件系统的类型) /dev/sdb1:第二块串口硬盘的第一个分区,准备格式化
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: 完成
2.6挂载mount
手动挂载
[root@localhost ~]# mkdir /mnt/111
//创建文件111
[root@localhost ~]# mount -t ext4(文件类型) /dev/sdb1(磁盘路径) /mnt/111(文件路径)
//挂载
[root@localhost ~]# df -hT
// 查看挂载信息
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 470M 0 470M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 8.5M 478M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.2G 12G 31% /
/dev/sda1 xfs 1014M 172M 843M 17% /boot
tmpfs tmpfs 98M 40K 98M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 ext4 976M 2.6M 907M 1% /mnt/111
2.7操作剩下的内存空间
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 2293759 97280 83 Linux
/dev/sdb3 2293760 3074047 390144 83 Linux
/dev/sdb4 3074048 4194303 560128 83 Linux
//四个分区都已经被分完·无法再分区了
命令(输入 m 获取帮助):d
分区号 (1-4,默认 4): 4
分区 4 已删除
//删除第四个分区
命令(输入 m 获取帮助): p
//查看
命令(输入 m 获取帮助): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
已选择分区 4
起始 扇区 (3074048-4194303,默认为 3074048):
将使用默认值 3074048
Last 扇区, +扇区 or +size{K,M,G} (3074048-4194303,默认为 4194303):
将使用默认值 4194303
分区 4 已设置为 Extended 类型,大小设为 547 MiB
二、 逻辑卷LVM
1.1目的:管理磁盘的一种方式,性质与基本磁盘无异
1.2特点: 随意扩张大小
1.3术语:
PV:物理卷(physical volume)
VG:卷组(volume group)
LV:逻辑卷(logical volume)
1.4创建LVM:
(1)[root@localhost ~]# pvcreate /dev/sde
//创建物理卷
Physical volume "/dev/sde" successfully created.
(2) Physical volume "/dev/sde" successfully created.
[root@localhost ~]# vgcreate vg1(自己命名) /dev/sde
(3) [root@localhost ~]# lvcreate -L 100M -n lv1 vg1
//创建逻辑卷
Logical volume "lv1" created.
-L :大小 -n: 卷名 lv1->vg1( 把lv1放到vg1里面)
//创建卷组
Volume group "vg1" successfully created
(4)格式化
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
/dev/卷组名/逻辑卷名
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: 完成
(5)创建挂载点
[root@localhost ~]# mkdir /mnt/sde1
(6)挂载
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/sde1
(7)将磁盘sde1写满
[root@localhost ~]# dd if=/dev/zero of=/mnt/sdb1 bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.243365 秒,431 MB/秒
1.4 VG管理:
1.4.1扩大VG
[root@localhost ~]# pvs
//查看物理卷
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sde vg1 lvm2 a-- <5.00g <4.90g
/dev/sde vg1 lvm2 a-- <5.00g <4.90g
[root@localhost ~]# vgextend vg1 /dev/sdf
//扩容
Physical volume "/dev/sdf" successfully created.
Volume group "vg1" successfully extended
[root@localhost ~]# vgs
//查看卷组
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 1 0 wz--n- 9.99g 9.89g
1.5LV扩容:
(1)[root@localhost ~]# lvextend -L +4G /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to <4.10 GiB (1049 extents).
Logical volume vg1/lv1 successfully resized.
(2)
[root@localhost ~]# resize2fs /dev/vg1/lv1
//刷新
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt/sde1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 34
The filesystem on /dev/vg1/lv1 is now 4349952 blocks long.
三、 交换分区管理Swap
1.2作用:' 提升内存'的容量',防止OOM(内存溢出)
1.3Swap大小:
(1)推荐:设置分区大小内存的两倍
(2)生产:
2、查看当前的交换分区
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 615 66 25 290 189
Swap: 2047 128 1919
然后创建sdc1分区
设备 Boot Start End Blocks Id System
/dev/sdc1 2097152 10485759 4194304 83 Linux
更改类型:
Hex 代码(输入 L 列出所有代码):82(默认83)
已将分区“Linux”的类型更改为“Linux swap / Solaris”
正在同步磁盘。
[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]
sdb 8:16 0 2G 0 disk
├─sdb1 8:17 0 1G 0 part /mnt/111
├─sdb2 8:18 0 95M 0 part /mnt/222
├─sdb3 8:19 0 381M 0 part /mnt/333
└─sdb4 8:20 0 547M 0 part
sdc 8:32 0 5G 0 disk
└─sdc1 8:33 0 4G 0 part
sdd 8:48 0 2G 0 disk
sde 8:64 0 5G 0 disk
sdf 8:80 0 5G 0 disk
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64
1、刷新(将分区信息读到内核中)
[root@localhost ~]# partprobe /dev/sdc
2、查看分区
[root@localhost ~]# ll /dev/sdc*
\brw-rw----. 1 root disk 8, 32 8月 5 21:03 /dev/sdc
brw-rw----. 1 root disk 8, 33 8月 5 21:03 /dev/sdc1
3、格式化
[root@localhost ~]# mkswap /dev/sdc1
正在设置交换空间版本 1,大小 = 4194300 KiB
无标签,UUID=b2768fa2-c44e-4448-a656-07b524b4384c
4、挂载
[root@localhost ~]# swapon /dev/sdc1
5、查看验证
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 615 75 25 281 189
Swap: 6143 129 6014
6、删除
[root@localhost ~]# swapoff /dev/sdc1
7、卸载
[root@localhost ~]# umount /dev/sdc1
四、文件系统详解(ext4)
1、EXT3/4文件系统
1.1简介:
类型:索引文件系统
1.2名词
inode(索引节点):
block(块):
superblock(超级块):多个inode和block的组合
1.3 inode 实例:
[root@localhost ~]# cd /mnt/111/
//进入sdb1所挂载的文件
[root@localhost 111]# touch 1
//创建文件1
[root@localhost 111]# ls -l -i 1
//查看文件1
12 -rw-r--r--. 1 root root 0 8月 6 21:31 1
12:inode号
[root@localhost 111]# df -hT | grep sdb1
//查看sdb1的挂载信息
/dev/sdb1 ext4 976M 2.6M 907M 1% /mnt/111
[root@localhost 111]# df -i
//查看可用的inode号的数量
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 120203 473 119730 1% /dev
tmpfs 124459 1 124458 1% /dev/shm
tmpfs 124459 1073 123386 1% /run
tmpfs 124459 16 124443 1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848 157800 8753048 2% /
/dev/sda1 524288 340 523948 1% /boot
tmpfs 124459 24 124435 1% /run/user/0
/dev/sr0 0 0 0 - /run/media/root/CentOS 7 x86_64
/dev/sdb1 65536 12 65524 1% /mnt/111
/dev/sdb2 24384 11 24373 1% /mnt/222
/dev/sdb3 97536 11 97525 1% /mnt/333
/dev/sdd1 128016 11 128005 1% /mnt/dd1
/dev/mapper/vg1-lv1 1049256 11 1049245 1% /mnt/sde1
[root@localhost 111]# touch file{1..65537}
//创建65537个文件
touch: 无法创建"file65525": 设备上没有空间
[root@localhost 111]# ls -l | wc -l
//数有多少个文件
65527
注意:这时不能再创建文件inode已经满了,但是可以写数据block可以用
五、文件链接
1、 符号链接
1.1symbolic link 软链接
echo 111 > /1.txt
//写222到文件 1.txt
1.2具体过程
(1)[root@localhost 111]# ln -s /1.txt /root/桌面/1.txt
//创建链接到桌面(快捷方式)
注意:快捷方式删除文件内容还在
特点:可以对文件和目录做
2、 硬链接
[root@localhost 111]# echo file1 > /file1
//将file1 写入file1
[root@localhost 111]# ln /file1 /file2
//在file2中创建file1的快捷方式
[root@localhost 111]# ls -l /file1 /file2 /1.txt
//查看、file1 file2 1.txt
-rw-r--r--. 1 root root 46 8月 6 22:01 /1.txt
-rw-r--r--. 2 root root 6 8月 6 22:11 /file1
-rw-r--r--. 2 root root 6 8月 6 22:11 /file2
特点:硬链接在源文件删除后,文件内容仍然存在
只能对文件做不能对目录做
六、RAID(了解)
简介:廉价的磁盘阵列
作用:容错、提高读写速度
类型:
RAID0:至少两块磁盘、速度快、不能容错
RAID1:镜像卷 2块磁盘、容量50%、读写速度一般、容错
RAID5:至少3块硬盘、利用率:n-1/n、可靠、高速
1、保障数据的安全性
2、提高读写速度
软RID示例:
(1)准备n块硬盘
RAID5: 三块数据盘+一块热备盘
(2)创建RAID
[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{b,c,d,e}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
(3)格式化
[root@localhost ~]# mkfs.ext4 /dev/mod
//格式化
[root@localhost ~]# mkfs.ext4 /dev/mdo
mke2fs 1.42.9 (28-Dec-2013)
无法对 /dev/mdo 进行 stat 调用 --- 没有那个文件或目录
The device apparently does not exist; did you specify it correctly?
[root@localhost ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2618880 blocks
130944 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 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
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
(4)挂载
[root@localhost ~]# mkdir /mnt/raid5/
//创建
[root@localhost ~]# mount /dev/md0 /mnt/raid5/
//挂载
[root@localhost ~]# cp -rf /etc/ /mnt/raid5/etc1
/dev/md0 ext4 9.8G 82M 9.2G 1% /mnt/raid5
[root@localhost ~]# df -hT | grep /dev/md0
//查看
/dev/md0 ext4 9.8G 82M 9.2G 1% /mnt/raid5
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Aug 7 10:12:11 2022
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Aug 7 10:19:18 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : b53a0d85:02b9ea0d:b08318b4:b44c2dce
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde