磁盘已满,需要定位具体位置

使用 df -hlsblk 先确定挂载的关系

du命令可以显示目录和子目录的占用情况,需要携带参数指定查询深度:

du -h --max-depth=1 /path/to/large/directory

可以从根目录开始逐渐往下查找

有可能会存在du没有办法查找到的情况,例如对其中的一个目录,例如 /data/ 写入了大量文件后,将其他磁盘挂载到了这个目录后,du没法统计这一部分数据,最终导致du的结果和df有差距,所以有必要先确认当前挂载的情况后再进行查找。

磁盘硬件健康

一般磁盘故障首先出现read only,如果此时可以备份,尽快操作,否则重启祈祷。

无论是否出现只读,我们想要查看磁盘健康,就需要检查其smart信息,debian系安装如下,win可以直接使用CrystalDiskInfo

apt install smartmontools
smartctl -a /dev/sda

注意查看SMART overall-health self-assessment test result:的信息,如果出现非PASSED的信息,则硬盘存在问题。

Vendor Specific SMART Attributes with Thresholds后的参数代表了smart属性,重点看这几个

Reallocated_Sector_Ct (ID 5) 记录了重新分配的扇区数,一般正常为0,对固态来说则代表已使用寿命百分比

Power_On_Hours (ID 9) 通电时间

磁盘初始化&开机绑定

相比较fdisk来说,我更喜欢cfdisk这类图形化界面,如果环境所迫,fdisk [device]系统也会有指引操作

cfdisk [device]

可以在后面添加设备名来指定设备

一般来说,对于一个新的硬盘,我们直接选new即可,默认会设置为Linux filesystem,在底部的菜单可以调整文件系统类型。

这之后选择write将更改写入磁盘

这时候磁盘信息将会改变

这之后我们需要格式化硬盘

mkfs.ext4 /dev/sda1

注意此时再cfdisk应该会看到Filesystem信息

这之后我们可以设置开机挂载,在/etc/fstab中,这里可以直接使用sda这类设备名,也可以使用UUID,但注意,UUID指定的系统,如果在系统中不存在,且未设置nofail参数,系统将会启动失败。

这里我们按照设备名直接挂载:

/dev/sda1 /mnt/hdd1 ext4 defaults 0 0

可以重启验证配置,也可以直接挂载:

mount /dev/sda1 /mnt/hdd1