Fedora 31 磁盘管理与逻辑卷扩展指南
1. 磁盘设备识别
在 Fedora 31 系统中,磁盘设备以特定的命名规则标识。例如,第一个设备可能是
/dev/sda
,第二个是
/dev/sdb
等。当系统仅连接一个 SATA 控制器的磁盘驱动器时,执行
# ls /dev/sd*
命令,输出可能为:
/dev/sda /dev/sda1 /dev/sda2
这表明
/dev/sda
磁盘驱动器被划分为两个分区,分别由
/dev/sda1
和
/dev/sda2
表示。当安装第二个硬盘驱动器后,再次执行该命令,输出可能变为:
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
此时,新硬盘被分配到设备文件
/dev/sdb
,且当前该驱动器没有显示分区(因为尚未创建)。此时,我们有两个选择:一是在新驱动器上创建分区和文件系统并挂载以进行访问;二是将磁盘作为物理卷添加到卷组中。
2. 创建 Linux 分区
创建新磁盘分区可使用
fdisk
工具,以下是具体步骤:
1. 执行
# fdisk /dev/sdb
命令,进入
fdisk
交互界面。
2. 输入
p
命令查看当前磁盘分区情况,由于是新磁盘,此时应无分区。
3. 输入
n
命令创建新分区,再输入
p
选择主分区。
4. 选择分区编号,这里我们创建一个分区,选择默认的 1 号分区。
5. 指定分区的起始和结束位置,由于是第一个分区,起始扇区选择默认的 2048,结束扇区选择默认的 16777215,即使用整个磁盘。
6. 输入
w
命令将分区信息写入磁盘。
操作示例如下:
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xbd09c991.
Command (m for help): p
Disk /dev/sdb: 8 GiB, 8589934592 bytes, 16777216 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
Disklabel type: dos
Disk identifier: 0xbd09c991
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-16777215, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-16777215, default 16777215):
Created a new partition 1 of type ‘Linux’ and of size 8 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
此时,再次执行
# ls /dev/sd*
命令,可看到新分区
/dev/sdb1
。
3. 创建文件系统
在新分区上创建文件系统,可使用
mkfs.xfs
工具,示例命令如下:
# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=524224 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2096896, 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
这里创建了一个 XFS 文件系统,XFS 是 Fedora 31 的默认文件系统类型,具有高性能和并行 I/O 等优势。
4. 日志文件系统概述
日志文件系统会记录磁盘写入过程中对文件系统所做的更改,可用于快速重建因系统崩溃或停电等事件导致的损坏。与非日志文件系统相比,日志文件系统有以下优势:
-
数据恢复
:非日志文件系统在崩溃后需运行
fsck
工具检查和修复,可能无法完全修复损坏,导致部分数据存于
lost+found
目录;而日志文件系统可利用日志快速恢复。
-
时间效率
:
fsck
工具扫描大型文件系统可能需要很长时间,导致系统停机时间过长;日志文件系统可在短时间内恢复。
日志文件系统在每次写入时,会在磁盘的日志区域记录信息,记录的信息量可配置,从无记录到记录元数据,再到记录元数据和数据块。日志更新后,系统将实际数据写入文件系统的相应区域,并在日志中标记数据已提交。
5. 挂载文件系统
创建文件系统后,需要挂载才能访问。以下是挂载步骤:
1. 创建挂载点,例如创建
/backup
目录:
# mkdir /backup
-
使用
mount命令手动挂载文件系统:
# mount /dev/sdb1 /backup
-
执行
# mount命令查看所有已挂载的文件系统,可看到新挂载的/dev/sdb1文件系统:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
...
/dev/sdb1 on /backup type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
6. 配置自动挂载
为了让系统在启动时自动挂载新文件系统,需要在
/etc/fstab
文件中添加相应条目。
fstab
条目的格式如下:
<device> <dir> <type> <options> <dump> <fsck>
各字段含义如下:
| 字段 | 含义 |
| ---- | ---- |
|
<device>
| 要挂载文件系统的设备 |
|
<dir>
| 作为挂载点的目录 |
|
<type>
| 文件系统类型(如 xfs、ext4 等) |
|
<options>
| 额外的文件系统挂载选项,设置为
defaults
使用默认设置 |
|
<dump>
| 是否将文件系统内容包含在
dump
工具的备份中,通常设置为 0 禁用 |
|
<fsck>
| 系统崩溃后是否使用
fsck
检查文件系统,对于 XFS 等日志文件系统,设置为 0 表示不需要检查 |
示例配置如下:
/dev/mapper/fedora-root / xfs defaults 0 0
UUID=59e0179f-33ba-4362-be0f-2ca29b147a4b /boot xfs defaults 0 0
/dev/mapper/fedora-swap none swap defaults 0 0
/dev/sdb1 /backup xfs defaults 0 0
7. 使用 Cockpit 添加磁盘
除了使用命令行工具,还可使用 Cockpit 网络控制台配置新存储设备,操作流程如下:
1. 登录 Cockpit 控制台,选择 “Storage” 选项。
2. 滚动到存储页面底部,找到新添加的存储设备。
3. 选择新驱动器,点击 “Create Partition Table” 按钮,在弹出对话框中接受默认设置,点击 “Format” 按钮。
4. 点击 “Create Partition” 按钮,在对话框中指定分区大小、文件系统类型(推荐 XFS)、可选标签、文件系统挂载点和挂载选项。若新分区未使用完所有可用空间,可后续添加更多分区。
5. 若要更改文件系统的只读或开机挂载等设置,将 “Mounting” 菜单选项改为 “Custom”,并调整切换按钮设置。
6. 选择好设置后,点击 “Create partition” 按钮提交更改。创建完成后,新分区将添加到磁盘,相应的文件系统将被创建并挂载到指定的挂载点,同时
/etc/fstab
文件将进行相应更改。
以下是操作流程的 mermaid 流程图:
graph LR
A[登录 Cockpit 控制台] --> B[选择 Storage 选项]
B --> C[找到新添加的存储设备]
C --> D[点击 Create Partition Table 按钮]
D --> E[接受默认设置,点击 Format 按钮]
E --> F[点击 Create Partition 按钮]
F --> G[指定分区信息]
G --> H{是否更改挂载设置}
H -- 是 --> I[将 Mounting 改为 Custom 并调整设置]
H -- 否 --> J[点击 Create partition 按钮]
I --> J
J --> K[完成创建,更新分区、文件系统和 fstab 文件]
8. 逻辑卷管理(LVM)概述
逻辑卷管理(LVM)提供了一种灵活且高级的磁盘空间管理方式。与传统的将每个磁盘驱动器划分为固定大小的分区并创建固定大小的文件系统不同,LVM 允许将磁盘空间组合成逻辑卷,这些逻辑卷可以轻松调整大小和移动。此外,LVM 允许管理员通过为不同用户组分配不同的卷组或逻辑卷,来精确控制分配给不同用户组的磁盘空间。当最初分配给卷的空间耗尽时,管理员可以轻松添加更多空间,而无需将用户文件移动到不同的文件系统。
LVM 由以下组件组成:
| 组件 | 描述 |
| ---- | ---- |
| 卷组(VG) | 高级容器,包含一个或多个逻辑卷和物理卷 |
| 物理卷(PV) | 代表存储设备,如磁盘驱动器或其他存储介质 |
| 逻辑卷(LV) | 相当于磁盘分区,可以包含文件系统 |
| 物理扩展(PE) | 每个物理卷被划分为大小相等的块,称为物理扩展 |
| 逻辑扩展(LE) | 每个逻辑卷被划分为大小相等的块,称为逻辑扩展 |
例如,创建一个名为 VolGroup001 的新卷组,需要分配物理磁盘空间,我们可以分配三个磁盘分区
/dev/sda1
、
/dev/sdb1
和
/dev/sdb2
,这些分区成为 VolGroup001 中的物理卷。然后,我们可以在卷组中创建一个名为 LogVol001 的逻辑卷,该逻辑卷由这三个物理卷组成。如果 LogVol001 中的空间不足,我们可以简单地添加更多磁盘分区作为物理卷,并将它们分配给卷组和逻辑卷。
9. 获取逻辑卷信息
为了给 Fedora 31 系统的根文件系统添加空间,我们需要先了解当前的 LVM 配置。以下是获取相关信息的步骤:
1. 执行
# mount
命令,查看根文件系统的挂载信息,例如:
/dev/mapper/fedora-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
-
执行
# vgdisplay命令,获取卷组信息,例如:
--- Volume group ---
VG Name fedora
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <49.00 GiB
PE Size 4.00 MiB
Total PE 12543
Alloc PE / Size 12543 / <49.00 GiB
Free PE / Size 0 / 0
VG UUID h0TESz-3YJd-wsMl-T2GL-dHOp-rSPu-I4uxJO
从上述输出可知,
fedora
卷组的物理扩展大小为 4.00MB,总共有 49GB 可分配给逻辑卷,目前已分配完所有物理扩展。
3. 执行
# vgs
命令,快速查看系统中卷组的可用空间:
VG #PV #LV #SN Attr VSize VFree
fedora 1 2 0 wz--n- <49.00g 0
-
执行
# lvdisplay命令,获取卷组中逻辑卷的信息,例如:
--- Logical volume ---
LV Path /dev/fedora/swap
LV Name swap
VG Name fedora
LV UUID m2IbeG-9f2E-QRjz-P33z-D1kN-hfke-GUx1VQ
LV Write Access read/write
LV Creation host, time demoserver, 2020-01-11 15:01:46 -0500
LV Status available
# open 2
LV Size <4.41 GiB
Current LE 1128
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/fedora/root
LV Name root
VG Name fedora
LV UUID G5Zlvd-E8ti-Dvc7-zZTG-rXvq-Gki1-IX7dTm
LV Write Access read/write
LV Creation host, time demoserver, 2020-01-11 15:01:46 -0500
LV Status available
# open 1
LV Size 15.00 GiB
Current LE 3840
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
从输出可知,
fedora
卷组中 15 GiB 的空间分配给了逻辑卷
root
(用于根文件系统),4.41 GiB 分配给了
swap
(用于交换空间)。
5. 执行
# pvdisplay
命令,查看提供空间的物理设备,例如:
--- Physical volume ---
PV Name /dev/sda2
VG Name fedora
PV Size <49.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12543
Free PE 7575
Allocated PE 4968
PV UUID HQOzD4-3LXX-M3Tm-TjOm-wU32-wWwv-80MCnU
由此可知,逻辑卷
fedora
控制的空间由位于
/dev/sda2
的物理卷提供。
10. 从命令行添加空间到卷组
假设新磁盘
/dev/sdb
已添加到系统,且该磁盘没有现有分区。如果有现有分区,需先备份,再使用
fdisk
工具删除分区。以下是具体操作步骤:
1.
删除现有分区(如果有)
:
# fdisk -l /dev/sdb
Disk /dev/sdb: 8 GiB, 8589934592 bytes, 16777216 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
Disklabel type: dos
Disk identifier: 0xbd09c991
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 5678545 5676498 2.7G 83 Linux
/dev/sdb2 5679104 16777215 11098112 5.3G 83 Linux
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2, default 2): 1
Partition 1 has been deleted.
Command (m for help): d
Selected partition 2
Partition 2 has been deleted.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
同时,确保从
/etc/fstab
文件中删除这些文件系统的条目,以免系统在下次重启时尝试挂载它们。
2.
将磁盘转换为物理卷
:
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
如果创建失败,提示 “Device /dev/
excluded by a filter”,可能需要在创建物理卷之前使用
wipefs
命令擦除磁盘:
# wipefs -a /dev/sdb
/dev/sdb: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sdb: 8 bytes were erased at offset 0x1fffffe00 (gpt): 45 46 49 20 50 41 52 54
/dev/sdb: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdb: calling ioctl to re-read partition table: Success
- 将物理卷添加到卷组 :
# vgextend fedora /dev/sdb
Volume group "fedora" successfully extended
-
扩展逻辑卷
:假设要将逻辑卷
root的大小扩展 7GB,执行以下命令:
# lvextend -L+7G /dev/fedora/root
Size of logical volume fedora/root changed from 15.00 GiB (3840 extents) to 22.00 GiB (5632 extents).
Logical volume fedora/root successfully resized.
-
调整文件系统大小
:由于默认使用 XFS 文件系统,可使用
xfs_growfs工具调整文件系统大小:
# xfs_growfs /
meta-data=/dev/mapper/fedora-root isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=3932160, imaxpct=25
以下是从命令行添加空间到卷组的 mermaid 流程图:
graph LR
A[检查新磁盘 /dev/sdb] --> B{有现有分区?}
B -- 是 --> C[备份并删除分区]
B -- 否 --> D[转换为物理卷]
C --> D
D --> E[添加到卷组]
E --> F[扩展逻辑卷]
F --> G[调整文件系统大小]
综上所述,通过上述步骤,我们可以在 Fedora 31 系统中添加新磁盘、创建分区和文件系统,还可以利用 LVM 灵活管理磁盘空间,为系统的根文件系统动态扩展空间。
超级会员免费看
2211

被折叠的 条评论
为什么被折叠?



