查看硬盘
ll /dev/sd*
示例输出:
brw-rw----. 1 root disk 8, 0 7月 31 18:43 /dev/sda
brw-rw----. 1 root disk 8, 1 7月 31 18:43 /dev/sda1
brw-rw----. 1 root disk 8, 2 7月 31 18:43 /dev/sda2
brw-rw----. 1 root disk 8, 3 7月 31 18:43 /dev/sda3
brw-rw----. 1 root disk 8, 16 7月 31 22:57 /dev/sdb
brw-rw----. 1 root disk 8, 17 7月 31 22:57 /dev/sdb1
查看硬盘分区信息
fdisk -l /dev/sdb
或者查看所有磁盘和分区:
lsblk
删除硬盘分区(以 /dev/sdb 为例)
fdisk /dev/sdb
交互过程:
输入
d
删除分区输入分区号(例如 1)
重复删除所有分区
输入
w
保存并退出
清除硬盘分区表(慎用)
dd if=/dev/zero of=/dev/sdb bs=512 count=1
或者使用 wipefs
:
wipefs -a /dev/sdb
创建新分区
fdisk /dev/sdb
交互过程:
输入
n
创建新分区输入分区号(默认即可)
指定起始扇区和结束扇区(默认即可)
输入
w
保存并退出
格式化分区
mkfs.ext4 /dev/sdb1
其他可选文件系统:xfs、btrfs、ntfs 等
挂载硬盘分区
mkdir -p /mnt/data
mount /dev/sdb1 /mnt/data
验证是否挂载成功:
df -h | grep /mnt/data
设置开机自动挂载
编辑 /etc/fstab
添加:
/dev/sdb1 /mnt/data ext4 defaults 0 2
建议使用 UUID,查看 UUID:
blkid /dev/sdb1
示例:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults 0 2
卸载硬盘分区
umount /mnt/data
如果提示设备正忙:
lsof | grep /mnt/data
或使用 fuser
查看并终止进程
删除磁盘设备(模拟移除)
如果是热插拔设备,可以执行:
echo 1 > /sys/block/sdb/device/delete
查看磁盘 SMART 状态(监控健康)
smartctl -a /dev/sdb
需安装 smartmontools
包
扫描新插入的磁盘(不重启)
echo "- - -" > /sys/class/scsi_host/host0/scan
根据主机数量可能为 host1、host2 等
如果卸载硬盘的时候提示 umount: /disk: 目标忙.
1. 查找占用该挂载点的进程
使用 lsof
lsof +D /disk
显示正在访问 /disk
的文件的进程(可能很多)。
使用 fuser
fuser -vm /disk
会列出使用该目录的进程及用户。
🔒 2. 终止占用进程(谨慎操作)
强制终止所有占用进程
fuser -km /disk
这会发送 SIGKILL
(-k)信号终止所有正在使用 /disk
的进程。
总结
以上命令适用于大多数基于 SCSI 的硬盘(包括 SATA/SAS)。操作硬盘需谨慎,强烈建议在执行删除、格式化前备份数据!
评论区