XiaowenBlog/source/_posts/Linux磁盘管理.md
wenyongda 57e553807d docs: 添加Linux相关技术文档
新增多篇Linux技术文档,涵盖基础命令、文件操作、用户权限、网络配置、进程管理、软件安装、系统监控和磁盘管理等主题。每篇文档包含详细命令示例和使用说明,适合作为Linux系统管理参考手册。

文档内容包含:
1. Linux基础命令与快捷键
2. 文件操作与查找技巧
3. 用户管理与权限配置
4. 网络配置与防火墙管理
5. 进程与服务管理方法
6. 软件包管理与安装
7. 系统资源监控命令
8. 磁盘分区与LVM管理
2026-04-16 13:02:54 +08:00

565 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Linux磁盘管理
date: 2021-04-07 16:04:58
author: 文永达
top_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/00E0F0ED-9F1C-407A-9AA6-545649D919F4.jpeg
tags: [Linux, Shell, 磁盘管理]
categories: [操作系统, Linux]
---
# Linux磁盘管理
## 磁盘空间查看
### df 命令
查看磁盘整体情况。
```shell
# 统计磁盘整体情况
df -lh
```
### du 命令
查看目录占用空间。
```shell
# 查看根目录下文件夹大小
du -sh /*
```
---
## 安装与分区
### Linux分区顺序
1. **boot 分区**:引导启动分区,通常 200-500M
2. **swap 分区**:缓存分区,通常为物理内存的 2 倍
3. **根分区(/**:剩余空间分配给根分区
4. **home 分区**:可选
---
## LVM扩容
### 旧有卷扩容
`/home` 部分空间合并至 `/` 下。
#### 1. 查看当前分区
```shell
df -h
```
#### 2. 查看卷的文件系统类型
```shell
mount | grep home
```
#### 3. 安装备份工具
```shell
dnf install -y xfsdump
```
#### 4. 备份 /home
```shell
xfsdump -f ~/sdb_dump/ /home -M sdb_home -L sdb_home_1
```
#### 5. 卸载 /home
```shell
umount /home/
df -h
```
#### 6. 移除逻辑卷
> ⚠️ 删除前请确保重要文件已备份!
```shell
lvremove /dev/mapper/almalinux-home
```
#### 7. 扩展根分区
```shell
# 扩展根分区增加8.7G
lvresize -L +8.7G /dev/mapper/almalinux-root
lsblk
```
#### 8. 扩展文件系统
```shell
xfs_growfs /
df -h
```
#### 9. 重新创建 home 逻辑卷
```shell
lvcreate -L 9G -n home almalinux
lsblk
```
#### 10. 扩展剩余空间给 home
```shell
lvextend -l +100%FREE -n /dev/mapper/almalinux-home
lsblk
```
#### 11. 格式化并挂载
```shell
# 格式化
mkfs.xfs /dev/mapper/almalinux-home
# 挂载因lv名称和挂载点不变无需修改/etc/fstab
mount -a
df -Th
```
#### 12. 还原数据
```shell
xfsrestore -f sdb_dump /home/
```
---
### 新加卷扩容
#### 1. 查看现有分区大小
```shell
df -Th
```
#### 2. 查看扩容后磁盘大小
```shell
lsblk
```
#### 3. 创建分区
```shell
fdisk /dev/sda
```
**fdisk 操作步骤**
- 输入 `n` 创建新分区
- 选择分区类型(主分区/扩展分区)
- 设置分区大小
- 输入 `w` 保存更改
#### 4. 刷新分区并创建物理卷
```shell
partprobe /dev/sda
pvcreate /dev/sda4
```
#### 5. 查看卷组
```shell
vgdisplay
```
#### 6. 将物理卷扩展到卷组
```shell
vgextend rl /dev/sda4
```
#### 7. 查看逻辑卷
```shell
lvdisplay
```
#### 8. 扩展根分区逻辑卷
```shell
lvextend -l +100%FREE /dev/rl/root
```
#### 9. 刷新根分区
```shell
xfs_growfs /dev/rl/root
```
---
## 分区格式转换
### Microsoft 基本数据 → Linux 文件系统
#### 1. 查看当前分区类型
```shell
fdisk -l
```
#### 2. 转换分区类型
```shell
fdisk /dev/sdb
# 输入 t 命令(转换分区类型)
t
# 输入 20Linux file system
20
# 输入 w写入更改
w
```
#### 3. 手动挂载硬盘
```shell
mkdir /sdb
mount -t ext3 /dev/sdb1 /sdb
```
#### 4. 查看挂载结果
```shell
df -Th
```
#### 5. 设置自动挂载
查看硬盘UUID
```shell
blkid /dev/sdb1
```
编辑 `/etc/fstab`
```shell
vim /etc/fstab
# 添加以下行
UUID=7d592b46-68dc-41c2-bdb3-7ee410f0bb33 /sdb ext3 defaults 0 0
```
重载配置:
```shell
systemctl daemon-reload
```
---
### ext3 升级 ext4
#### 1. 确认当前文件系统类型
```shell
df -Th | grep /dev/sdb1
```
#### 2. 卸载目标分区
> ⚠️ 不能对正在使用的根分区操作
```shell
umount /dev/sdb1
```
#### 3. 检查并修复文件系统
```shell
e2fsck -f /dev/sdb1
```
#### 4. 将 ext3 转换为 ext4
```shell
tune2fs -O has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sdb1
```
#### 5. 查看转换是否成功
```shell
dumpe2fs -h /dev/sdb1 | grep features
```
确认输出中包含:`extent``huge_file``flex_bg``uninit_bg``dir_nlink``extra_isize`
#### 6. 再次检查文件系统
```shell
e2fsck -f /dev/sdb1
```
#### 7. 挂载并验证
```shell
mount -t ext4 /dev/sdb1 /sdb
df -Th | grep /dev/sdb1
```
#### 8. 修改 /etc/fstab
```shell
/dev/sdb1 /sdb ext4 defaults 0 0
```
---
### NTFS → ext4
#### 1. 确认目标分区
```shell
lsblk -f
```
#### 2. 卸载分区
```shell
sudo umount /dev/sda1
```
#### 3. 格式化为 ext4
```shell
sudo mkfs.ext4 /dev/sda1
```
#### 4. 验证结果
```shell
lsblk -f
```
---
## 挂载卷
### Windows 网络共享位置
#### 1. 创建挂载目录
```shell
mkdir -p /mnt/wdshare/
```
#### 2. 安装依赖
```shell
dnf install -y cifs-utils
```
#### 3. 挂载
```shell
mount -t cifs -o username=user,password=backup //192.168.0.1/备份 /mnt/wdshare/
```
#### 4. 永久挂载
编辑 `/etc/fstab`
```shell
//192.168.0.1/备份 /mnt/wdshare/ cifs username=user,password=backup 0 0
```
重载配置:
```shell
sudo systemctl daemon-reload
sudo mount -a
```
---
### NTFS 分区
#### 1. 识别NTFS分区
```shell
sudo parted -l
```
#### 2. 创建挂载点
```shell
sudo mkdir /mnt/ntfs1
```
#### 3. 安装依赖
```shell
sudo apt update
sudo apt install fuse -y
sudo apt install ntfs-3g -y
```
#### 4. 挂载分区
```shell
sudo mount -t ntfs-3g /dev/sda1 /mnt/ntfs1/
```
#### 5. 验证挂载
```shell
df -Th
```
#### 6. 永久挂载
编辑 `/etc/fstab`
```shell
/dev/sda1 /mnt/ntfs1 fuseblk defaults 0 0
```
重载配置:
```shell
sudo systemctl daemon-reload
```
---
## Swap配置
### 创建Swap分区
#### 1. 查看当前Swap大小
```shell
free -h
```
#### 2. 创建Swap文件
```shell
# 创建4G的swap文件
dd if=/dev/zero of=/home/swap bs=1024 count=4194304
```
> `count` 值 = 大小(M) × 1024
#### 3. 格式化Swap分区
```shell
mkswap /home/swap
```
#### 4. 启用Swap
```shell
swapon /home/swap
```
#### 5. 设置自动挂载
编辑 `/etc/fstab`
```shell
/home/swap swap swap default 0 0
```
---
### 关闭Swap
```shell
swapoff /home/swap
```
---
### 修改Swap使用率
`swappiness` 值表示使用 swap 的倾向:
- `0`:最大限度使用物理内存
- `100`:积极使用 swap
#### 1. 查看当前值
```shell
cat /proc/sys/vm/swappiness
```
#### 2. 临时修改
```shell
sysctl vm.swappiness=60
```
#### 3. 永久修改
编辑 `/etc/sysctl.conf`
```shell
vm.swappiness=60
```
应用更改:
```shell
sysctl -p
```
---
## 内核升级
### CentOS 7.9 内核升级
#### 1. 查看当前内核版本
```shell
uname -a
```
#### 2. 查看系统版本
```shell
cat /etc/redhat-release
```
#### 3. 导入公钥
```shell
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
```
#### 4. 安装ELRepo
```shell
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
```
#### 5. 安装新内核
```shell
yum --enablerepo=elrepo-kernel install kernel-ml -y &&
sed -i s/saved/0/g /etc/default/grub &&
grub2-mkconfig -o /boot/grub2/grub.cfg
```
#### 6. 重启系统
```shell
reboot
```
#### 7. 验证内核版本
```shell
uname -a
```