新硬盘需先用lsblk或dmesg确认内核识别,再fdisk分区(≥2tb须用gpt),接着mkfs格式化,最后mount挂载并配置/etc/fstab(推荐用uuid而非设备名),缺一不可且顺序不可颠倒。

新硬盘加进 Linux 系统后,fdisk 只是第一步,不格式化、不挂载、不写入 /etc/fstab,它永远只是 /dev/sdb —— 一块“看得见但用不了”的裸设备。
怎么确认新硬盘是否被系统识别
别急着 fdisk,先看内核有没有认出它。最可靠的是 lsblk,它按树形展示块设备,未分区的硬盘只显示设备名(如 /dev/sdb),有分区才出现 /dev/sdb1 等子节点。
如果 lsblk 没列出来,再补查:sudo dmesg | tail -20,看最后几行有没有 sdX 或 vdX 的探测日志;云环境常见的是 /dev/vdb,物理机多为 /dev/sdb。
- 虚拟机热添加硬盘后,必须重启或执行
echo "- - -" > /sys/class/scsi_host/host*/scan才能触发重扫描 -
fdisk -l有时会因权限或缓存显示旧状态,优先信lsblk - 看到
rom、loop或zram设备不用管,它们不是物理硬盘
fdisk 分区时最容易踩的三个坑
fdisk 本身不危险,危险在于默认行为和误操作。它不会自动帮你选对分区表类型,也不会阻止你把整个盘当一个主分区划掉。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 大于 2TB 的硬盘必须用 GPT:输入
fdisk /dev/sdb后,如果提示DOS partition table format cannot be used on drives larger than 2199023255040 bytes,说明 MBR 不支持,此时应退出,改用gdisk或在fdisk中输入g创建 GPT 表(较新版本fdisk支持) - 新建分区不指定大小就直接回车 → 占满整块盘:结束扇区输
+20G是安全的,输默认值(直接回车)等于把剩下所有空间全分给这个分区 - 忘记
w就退出 → 所有操作白做:输入q是放弃,w才是写入。执行w后若提示Calling ioctl() to re-read partition table失败,手动运行sudo partprobe /dev/sdb强制内核刷新分区信息
格式化与挂载前必须搞清的两件事
分区只是画格子,格式化才是铺地板,挂载才是开门进屋。三步缺一不可,且顺序不能错。
- 文件系统选型:
mkfs.ext4 /dev/sdb1最通用;大容量、高并发场景用mkfs.xfs /dev/sdb1;别用mkfs.ext2或mkfs.minix,它们不支持现代特性(如 ext4 的日志、xfs 的延迟分配) - 挂载点路径必须存在且为空:
sudo mkdir /data创建目录后,确保里面没文件,否则挂载后原内容被隐藏,卸载前看不见也删不掉 - 临时挂载用
sudo mount /dev/sdb1 /data;要开机自动挂载,必须编辑/etc/fstab,追加一行:/dev/sdb1 /data ext4 defaults 0 2;别用设备名(如/dev/sdb1)做 fstab 条目,建议改用 UUID(查法:sudo blkid /dev/sdb1)——设备名在多盘环境下可能变动
验证挂载是否真正生效
别只信 mount 命令输出,得看实际读写。
- 运行
df -h /data,确认已显示容量且使用率非 0% - 执行
sudo touch /data/testfile && sudo rm /data/testfile,验证可写 - 关键一步:重启机器,再检查
df -h和文件写入是否仍有效 —— 很多人漏这步,结果 fstab 配错导致系统启动卡住或挂载失败 - 如果挂载后
ls /data是空的,但df显示已挂载,大概率是挂载点目录原本就有文件,挂载覆盖了它们;此时应卸载、清空目录、再挂载
最常被忽略的其实是设备命名稳定性 —— 特别是在多块硬盘、热插拔或云环境中,/dev/sdb 下次启动可能变成 /dev/sdc。用 UUID 或 WWN 替代设备名写进 /etc/fstab,不是可选项,是必选项。










