插件窝 干货文章 Linux系统中的硬盘和存储管理指南

Linux系统中的硬盘和存储管理指南

sudo dev 文件 创建 284    来源:    2025-04-18

Linux系统中的硬盘和存储管理指南

一、存储设备基础

1. 设备识别与查看

# 查看所有块设备
lsblk

# 详细磁盘信息
fdisk -l

# 查看SCSI/SATA设备
lsscsi

# 查看USB设备
lsusb

# 查看PCI设备
lspci

2. 设备命名规则

  • /dev/sdX: SCSI/SATA/USB设备 (sda, sdb等)
  • /dev/nvmeXnY: NVMe设备 (nvme0n1, nvme1n1等)
  • /dev/hdX: 旧式IDE设备 (已很少见)
  • /dev/mdX: 软件RAID设备
  • /dev/vdX: 虚拟化环境中的虚拟磁盘

二、分区管理

1. 使用fdisk进行分区

# 对/dev/sdb进行分区
sudo fdisk /dev/sdb

# fdisk常用命令
# n - 新建分区
# d - 删除分区
# p - 打印分区表
# w - 写入并退出
# q - 不保存退出

2. 使用parted进行分区(支持GPT)

sudo parted /dev/sdb
# 常用命令:
# mklabel gpt/msdos - 创建GPT或MBR分区表
# mkpart primary ext4 1MiB 500MiB - 创建分区
# print - 显示分区表
# rm 1 - 删除分区1

3. 使用gdisk进行GPT分区

sudo gdisk /dev/nvme0n1
# 交互式界面与fdisk类似,但专为GPT设计

三、文件系统管理

1. 创建文件系统

# 创建ext4文件系统
sudo mkfs.ext4 /dev/sdb1

# 创建XFS文件系统
sudo mkfs.xfs /dev/sdb2

# 创建Btrfs文件系统
sudo mkfs.btrfs /dev/sdb3

# 创建FAT32文件系统
sudo mkfs.vfat -F 32 /dev/sdb4

2. 检查与修复文件系统

# 检查ext2/3/4文件系统
sudo fsck /dev/sdb1

# 检查XFS文件系统
sudo xfs_repair /dev/sdb2

# 检查Btrfs文件系统
sudo btrfs check /dev/sdb3

四、挂载管理

1. 基本挂载操作

# 临时挂载
sudo mount /dev/sdb1 /mnt/data

# 卸载
sudo umount /mnt/data

# 查看已挂载的文件系统
mount
# 或
findmnt

2. 通过/etc/fstab自动挂载

示例fstab条目:

# 设备/UUID      挂载点      文件系统  选项       dump fsck
UUID=xxxx...    /data       ext4    defaults    0       2
/dev/sdb1       /backup     xfs     defaults    0       1

查找UUID:

sudo blkid

3. 挂载选项

  • defaults: rw, suid, dev, exec, auto, nouser, async
  • noatime: 不更新访问时间,提高性能
  • nodiratime: 不更新目录访问时间
  • discard: 启用TRIM (SSD)
  • nofail: 启动时忽略挂载失败

五、逻辑卷管理(LVM)

1. LVM基本概念

  • PV (Physical Volume): 物理卷
  • VG (Volume Group): 卷组
  • LV (Logical Volume): 逻辑卷

2. 创建LVM

# 创建物理卷
sudo pvcreate /dev/sdb /dev/sdc

# 创建卷组
sudo vgcreate vg_data /dev/sdb /dev/sdc

# 创建逻辑卷
sudo lvcreate -n lv_www -L 20G vg_data
sudo lvcreate -n lv_db -l 100%FREE vg_data

# 格式化逻辑卷
sudo mkfs.ext4 /dev/vg_data/lv_www

3. LVM管理命令

# 扩展逻辑卷
sudo lvextend -L +5G /dev/vg_data/lv_www
sudo resize2fs /dev/vg_data/lv_www  # 对于ext文件系统

# 扩展卷组
sudo vgextend vg_data /dev/sdd

# 查看信息
sudo pvdisplay
sudo vgdisplay
sudo lvdisplay

六、RAID管理

1. 软件RAID (mdadm)

# 创建RAID1
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

# 查看RAID状态
cat /proc/mdstat
sudo mdadm --detail /dev/md0

# 添加到/etc/mdadm/mdadm.conf
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

# 格式化并挂载
sudo mkfs.ext4 /dev/md0
sudo mount /dev/md0 /mnt/raid

2. RAID维护

# 标记设备为故障
sudo mdadm /dev/md0 --fail /dev/sdb

# 移除故障设备
sudo mdadm /dev/md0 --remove /dev/sdb

# 添加新设备
sudo mdadm /dev/md0 --add /dev/sdd

七、高级存储技术

1. 使用Btrfs高级功能

# 创建子卷
sudo btrfs subvolume create /mnt/btrfs/subvol1

# 创建快照
sudo btrfs subvolume snapshot /mnt/btrfs/subvol1 /mnt/btrfs/subvol1_snap

# 启用压缩
sudo mount -o compress=zstd /dev/sdb1 /mnt/btrfs

2. 使用ZFS

# 创建存储池
sudo zpool create tank mirror /dev/sdb /dev/sdc

# 创建文件系统
sudo zfs create tank/data

# 启用压缩
sudo zfs set compression=lz4 tank/data

# 创建快照
sudo zfs snapshot tank/data@today

八、性能监控与优化

1. 磁盘I/O监控

# 实时监控
iotop
sudo iotop -o

# 统计信息
iostat -x 1
vmstat 1

# 使用dstat
dstat -d --disk-util

2. 优化技巧

# 调整I/O调度器
echo deadline | sudo tee /sys/block/sda/queue/scheduler

# 调整虚拟内存参数
sudo sysctl -w vm.swappiness=10

# SSD优化 (启用TRIM)
sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer

九、故障排查

1. 常见问题解决

磁盘空间不足:

# 查找大文件
sudo du -h --max-depth=1 / | sort -h
sudo find / -type f -size +100M -exec ls -lh {} \;

修复文件系统错误:

# 对于无法卸载的文件系统,可尝试强制检查
sudo touch /forcefsck
sudo reboot

恢复误删文件:

# ext3/4文件系统可使用extundelete
sudo extundelete /dev/sdb1 --restore-file /path/to/file

十、安全考虑

  1. 加密磁盘:
# 使用LUKS加密
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 encrypted_volume
sudo mkfs.ext4 /dev/mapper/encrypted_volume
  1. 安全擦除:
# 安全擦除磁盘
sudo shred -v -n 1 /dev/sdb

# 对于SSD使用ATA安全擦除
sudo hdparm --user-master u --security-set-pass Eins /dev/sdb
sudo hdparm --user-master u --security-erase Eins /dev/sdb

通过掌握这些Linux存储管理技术,您将能够有效地配置、维护和优化Linux系统中的各种存储设备。