# 查看所有块设备
lsblk
# 详细磁盘信息
fdisk -l
# 查看SCSI/SATA设备
lsscsi
# 查看USB设备
lsusb
# 查看PCI设备
lspci
/dev/sdX
: SCSI/SATA/USB设备 (sda, sdb等)/dev/nvmeXnY
: NVMe设备 (nvme0n1, nvme1n1等)/dev/hdX
: 旧式IDE设备 (已很少见)/dev/mdX
: 软件RAID设备/dev/vdX
: 虚拟化环境中的虚拟磁盘# 对/dev/sdb进行分区
sudo fdisk /dev/sdb
# fdisk常用命令
# n - 新建分区
# d - 删除分区
# p - 打印分区表
# w - 写入并退出
# q - 不保存退出
sudo parted /dev/sdb
# 常用命令:
# mklabel gpt/msdos - 创建GPT或MBR分区表
# mkpart primary ext4 1MiB 500MiB - 创建分区
# print - 显示分区表
# rm 1 - 删除分区1
sudo gdisk /dev/nvme0n1
# 交互式界面与fdisk类似,但专为GPT设计
# 创建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
# 检查ext2/3/4文件系统
sudo fsck /dev/sdb1
# 检查XFS文件系统
sudo xfs_repair /dev/sdb2
# 检查Btrfs文件系统
sudo btrfs check /dev/sdb3
# 临时挂载
sudo mount /dev/sdb1 /mnt/data
# 卸载
sudo umount /mnt/data
# 查看已挂载的文件系统
mount
# 或
findmnt
示例fstab条目:
# 设备/UUID 挂载点 文件系统 选项 dump fsck
UUID=xxxx... /data ext4 defaults 0 2
/dev/sdb1 /backup xfs defaults 0 1
查找UUID:
sudo blkid
defaults
: rw, suid, dev, exec, auto, nouser, asyncnoatime
: 不更新访问时间,提高性能nodiratime
: 不更新目录访问时间discard
: 启用TRIM (SSD)nofail
: 启动时忽略挂载失败# 创建物理卷
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
# 扩展逻辑卷
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
# 创建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
# 标记设备为故障
sudo mdadm /dev/md0 --fail /dev/sdb
# 移除故障设备
sudo mdadm /dev/md0 --remove /dev/sdb
# 添加新设备
sudo mdadm /dev/md0 --add /dev/sdd
# 创建子卷
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
# 创建存储池
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
# 实时监控
iotop
sudo iotop -o
# 统计信息
iostat -x 1
vmstat 1
# 使用dstat
dstat -d --disk-util
# 调整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
磁盘空间不足:
# 查找大文件
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
# 使用LUKS加密
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 encrypted_volume
sudo mkfs.ext4 /dev/mapper/encrypted_volume
# 安全擦除磁盘
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系统中的各种存储设备。