新增多篇Linux技术文档,涵盖基础命令、文件操作、用户权限、网络配置、进程管理、软件安装、系统监控和磁盘管理等主题。每篇文档包含详细命令示例和使用说明,适合作为Linux系统管理参考手册。 文档内容包含: 1. Linux基础命令与快捷键 2. 文件操作与查找技巧 3. 用户管理与权限配置 4. 网络配置与防火墙管理 5. 进程与服务管理方法 6. 软件包管理与安装 7. 系统资源监控命令 8. 磁盘分区与LVM管理
565 lines
6.9 KiB
Markdown
565 lines
6.9 KiB
Markdown
---
|
||
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
|
||
# 输入 20(Linux 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
|
||
``` |