第一部分:磁盘分区
1. 分区基础概念
为什么要分区?
隔离与组织 :分离系统、程序、数据
性能优化 :减少I/O竞争
安全控制 :不同挂载选项增强安全
简化备份 :针对性备份重要数据
多系统共存 :支持多个操作系统
限制影响 :防止单个分区问题影响整个系统
2. 分区表类型
MBR(主引导记录)
# 查看MBR磁盘信息
sudo fdisk -l /dev/sda
# 特点:
# - 兼容性好,所有系统都支持
# - 最多4个主分区(或3主分区+1扩展分区)
# - 最大支持2.2TB磁盘
# - 分区表存储在第一个扇区
GPT(GUID分区表)
# 查看GPT磁盘信息
sudo gdisk -l /dev/sda
# 特点:
# - 现代标准,适用于UEFI
# - 最多128个分区(Linux默认)
# - 支持大于2.2TB的磁盘
# - 具有冗余校验,更健壮
3. 分区工具使用
fdisk(用于MBR)
# 进入交互式分区界面
sudo fdisk /dev/sdb
# 常用命令:
# n - 创建新分区
# d - 删除分区
# p - 显示分区表
# t - 更改分区类型
# w - 保存并退出
# q - 不保存退出
gdisk(用于GPT)
# 进入交互式分区界面
sudo gdisk /dev/sdb
# 常用命令与fdisk类似
# 分区类型代码:
# 8300 - Linux文件系统
# 8200 - Linux交换分区
# 8e00 - Linux LVM
# ef00 - EFI系统分区
parted(通用工具)
# 查看分区信息
sudo parted /dev/sda print
# 创建GPT分区表
sudo parted /dev/sda mklabel gpt
# 创建主分区
sudo parted /dev/sda mkpart primary ext4 0% 20G
# 创建交换分区
sudo parted /dev/sda mkpart primary linux-swap 20G 22G
4. 分区实战示例
创建GPT分区
# 1. 启动gdisk
sudo gdisk /dev/sdb
# 2. 创建新分区
Command: n
Partition number: [回车默认]
First sector: [回车默认]
Last sector: +20G # 创建20G分区
Hex code: 8300 # Linux文件系统
# 3. 保存退出
Command: w
# 4. 重新读取分区表
sudo partprobe /dev/sdb
创建MBR分区
# 1. 启动fdisk
sudo fdisk /dev/sdb
# 2. 创建主分区
Command: n
Select: p # 主分区
Partition number: 1
First sector: [回车默认]
Last sector: +20G
# 3. 更改分区类型(如需要LVM)
Command: t
Hex code: 8e # Linux LVM
# 4. 保存退出
Command: w
第二部分:文件系统格式化
1. 常见文件系统类型
文件系统 特点 适用场景 ext4 稳定可靠,功能完善 通用Linux系统 XFS 高性能,支持大文件 大型文件服务器 Btrfs 高级功能,写时复制 需要快照功能的系统 swap 交换分区 虚拟内存
2. 格式化命令
创建文件系统
# 格式化为ext4
sudo mkfs.ext4 /dev/sdb1
# 格式化为XFS
sudo mkfs.xfs /dev/sdb1
# 创建交换分区
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2
# 带标签格式化(便于识别)
sudo mkfs.ext4 -L "mydata" /dev/sdb1
检查文件系统
# 检查ext4文件系统
sudo fsck.ext4 /dev/sdb1
# 检查XFS文件系统
sudo xfs_repair /dev/sdb1
# 查看文件系统信息
sudo blkid /dev/sdb1
sudo file -s /dev/sdb1
3. 挂载与管理
手动挂载
# 创建挂载点
sudo mkdir /mnt/mydata
# 临时挂载
sudo mount /dev/sdb1 /mnt/mydata
# 指定文件系统类型挂载
sudo mount -t ext4 /dev/sdb1 /mnt/mydata
# 卸载分区
sudo umount /mnt/mydata
自动挂载(/etc/fstab)
# 编辑fstab文件
sudo vim /etc/fstab
# 添加以下行(使用设备名):
/dev/sdb1 /mnt/mydata ext4 defaults 0 0
# 推荐使用UUID(更稳定):
# 首先获取UUID
sudo blkid /dev/sdb1
# 然后在fstab中添加:
UUID=1234-5678 /mnt/mydata ext4 defaults 0 0
# 验证fstab配置
sudo mount -a
常用挂载选项
# 只读挂载
/dev/sdb1 /mnt/mydata ext4 ro 0 0
# 禁止执行程序
/dev/sdb1 /mnt/mydata ext4 noexec 0 0
# 用户挂载
/dev/sdb1 /mnt/mydata ext4 user,rw 0 0
# 性能优化选项
/dev/sdb1 /mnt/mydata ext4 defaults,noatime,nodiratime 0 0
第三部分:RAID技术
1. RAID级别对比
级别 最小磁盘 容错 容量 读性能 写性能 场景 RAID 0 2 无 N 高 高 临时数据 RAID 1 2 有 N/2 高 中 系统盘 RAID 5 3 有 N-1 高 中 文件服务器 RAID 6 4 有 N-2 高 低 重要数据 RAID 10 4 有 N/2 高 高 数据库
2. mdadm工具使用
安装mdadm
# Ubuntu/Debian
sudo apt update && sudo apt install mdadm
# CentOS/RHEL
sudo yum install mdadm
创建RAID阵列
# 创建RAID 1
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# 创建RAID 5(3块数据盘+1块热备)
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# 查看创建进度
cat /proc/mdstat
管理RAID阵列
# 查看详细信息
sudo mdadm --detail /dev/md0
# 停止RAID阵列
sudo mdadm --stop /dev/md0
# 重新组装RAID
sudo mdadm --assemble /dev/md0 /dev/sdb /dev/sdc
# 扫描并组装所有RAID
sudo mdadm --assemble --scan
故障处理
# 标记磁盘故障
sudo mdadm /dev/md0 --fail /dev/sdb
# 移除故障磁盘
sudo mdadm /dev/md0 --remove /dev/sdb
# 添加新磁盘
sudo mdadm /dev/md0 --add /dev/sdd
# 查看重建进度
watch cat /proc/mdstat
3. RAID配置持久化
保存配置
# 扫描并保存配置
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
# 更新initramfs
sudo update-initramfs -u
# 对于CentOS/RHEL
sudo mdadm --detail --scan > /etc/mdadm.conf
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
自动挂载RAID
# 格式化RAID设备
sudo mkfs.ext4 /dev/md0
# 在fstab中添加
/dev/md0 /mnt/raid ext4 defaults 0 0
第四部分:LVM逻辑卷管理
1. LVM基本概念
物理卷 :磁盘或分区
卷组 :物理卷的集合
逻辑卷 :从卷组划分的逻辑空间
2. LVM操作流程
# 1. 创建物理卷
sudo pvcreate /dev/sdb1 /dev/sdc1
# 2. 创建卷组
sudo vgcreate my_vg /dev/sdb1 /dev/sdc1
# 3. 创建逻辑卷
sudo lvcreate -L 50G -n my_lv my_vg
# 4. 格式化
sudo mkfs.ext4 /dev/my_vg/my_lv
# 5. 挂载使用
sudo mount /dev/my_vg/my_lv /mnt/lvm_data
3. LVM扩展操作
# 扩展物理卷(添加新磁盘)
sudo pvcreate /dev/sdd1
sudo vgextend my_vg /dev/sdd1
# 扩展逻辑卷
sudo lvextend -L +20G /dev/my_vg/my_lv
# 扩展文件系统(ext4)
sudo resize2fs /dev/my_vg/my_lv
# 扩展文件系统(XFS)
sudo xfs_growfs /mnt/lvm_data
第五部分:综合实战流程
完整的分区→格式化→挂载流程
# 1. 查看磁盘信息
lsblk
sudo fdisk -l
# 2. 创建分区(以GPT为例)
sudo gdisk /dev/sdb
# 在gdisk中:n → [回车] → [回车] → +20G → 8300 → w
# 3. 重新读取分区表
sudo partprobe /dev/sdb
# 4. 格式化分区
sudo mkfs.ext4 /dev/sdb1
# 5. 创建挂载点并挂载
sudo mkdir /mnt/mydata
sudo mount /dev/sdb1 /mnt/mydata
# 6. 配置自动挂载
sudo blkid /dev/sdb1
sudo vim /etc/fstab
# 添加:UUID=xxx /mnt/mydata ext4 defaults 0 0
# 7. 验证配置
sudo mount -a
df -h /mnt/mydata
完整的RAID创建流程
# 1. 为多块磁盘创建分区
for disk in sdb sdc sdd; do
echo "分区磁盘 /dev/$disk"
sudo gdisk /dev/$disk <<EOF
n
1
8300
w
Y
EOF
done
# 2. 创建RAID 5
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
# 3. 监控创建进度
watch cat /proc/mdstat
# 4. 持久化配置
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
# 5. 格式化和挂载
sudo mkfs.xfs /dev/md0
sudo mkdir /mnt/raid5
sudo mount /dev/md0 /mnt/raid5
# 6. 自动挂载
echo "/dev/md0 /mnt/raid5 xfs defaults 0 0" | sudo tee -a /etc/fstab
第六部分:最佳实践
1. 分区规划建议
根分区 :至少20-30GB
/home分区 :用户数据,尽量大
/var分区 :日志文件,中等大小
交换分区 :物理内存的1-2倍(现代系统可用交换文件)
EFI分区 :512MB(UEFI系统必需)
2. 监控与维护命令
# 查看磁盘使用情况
df -h
lsblk
# 查看磁盘健康状态
sudo smartctl -a /dev/sda
# 检查文件系统
sudo fsck -f /dev/sdb1
# 监控RAID状态
cat /proc/mdstat
sudo mdadm --detail /dev/md0
# 查看LVM信息
sudo pvs
sudo vgs
sudo lvs
3. 重要提醒
操作前备份数据 :分区、格式化会破坏数据
谨慎使用fdisk/gdisk的w命令 :确认无误后再保存
验证fstab配置 :使用mount -a测试
RAID不是备份 :仍需定期备份重要数据
监控磁盘健康 :定期检查SMART状态
这份笔记涵盖了从基础分区到高级RAID配置的完整知识体系,建议在测试环境中实际操作以加深理解。
Comments NOTHING