本文介绍如何在 CentOS 7、Ubuntu 24.04、Debian 9 中,将一块新数据盘分区、格式化并永久挂载到 /data;同时介绍如何在 Windows Server 2019 的“磁盘管理”中将新数据盘创建为 D 盘。
/dev/sdb、分区为 /dev/sdb1 举例。实际设备名可能是 /dev/vdb、/dev/xvdb、/dev/nvme1n1 等,执行命令前必须根据容量、型号确认目标磁盘,禁止直接照抄设备名。CentOS 7、Debian 9 可先切换到 root:
su -
Ubuntu 24.04 默认使用 sudo。如果已经是 root,请去掉后续命令前的 sudo。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID,MODEL
sudo fdisk -l
一般情况下,系统盘可能是 /dev/sda,新数据盘可能是 /dev/sdb。请重点核对磁盘容量、型号、是否已有分区和文件系统。不要格式化系统盘。
CentOS 7:
yum install -y parted xfsprogs
Ubuntu 24.04:
sudo apt update
sudo apt install -y parted e2fsprogs
Debian 9:
apt-get update
apt-get install -y parted e2fsprogs
CentOS 7 默认常用 XFS 文件系统。以下命令假设已经确认新磁盘是 /dev/sdb。
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary xfs 1MiB 100%
partprobe /dev/sdb
udevadm settle
lsblk /dev/sdb
mkfs.xfs /dev/sdb1
mkdir -p /data
blkid /dev/sdb1
输出示例:
/dev/sdb1: UUID="11111111-2222-3333-4444-555555555555" TYPE="xfs"
先备份配置文件:
cp -a /etc/fstab /etc/fstab.bak.$(date +%F-%H%M%S)
编辑 /etc/fstab:
vi /etc/fstab
在文件末尾增加一行,并将示例 UUID 替换为实际值:
UUID=11111111-2222-3333-4444-555555555555 /data xfs defaults,nofail 0 0
mount -a
findmnt /data
df -hT /data
mount -a 没有报错,且 findmnt、df 能看到 /data,表示配置成功。
以下命令假设已经确认新磁盘是 /dev/sdb。
sudo parted /dev/sdb --script mklabel gpt
sudo parted /dev/sdb --script mkpart primary ext4 1MiB 100%
sudo partprobe /dev/sdb
sudo udevadm settle
lsblk /dev/sdb
sudo mkfs.ext4 -L data /dev/sdb1
sudo mkdir -p /data
sudo blkid /dev/sdb1
sudo cp -a /etc/fstab /etc/fstab.bak.$(date +%F-%H%M%S)
sudo nano /etc/fstab
在文件末尾增加一行,并替换为实际 UUID:
UUID=11111111-2222-3333-4444-555555555555 /data ext4 defaults,nofail 0 2
sudo mount -a
findmnt /data
df -hT /data
以下操作建议在 su - 切换到 root 后执行,并假设新磁盘是 /dev/sdb。
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary ext4 1MiB 100%
partprobe /dev/sdb
udevadm settle
lsblk /dev/sdb
mkfs.ext4 -L data /dev/sdb1
mkdir -p /data
blkid /dev/sdb1
cp -a /etc/fstab /etc/fstab.bak.$(date +%F-%H%M%S)
vi /etc/fstab
在文件末尾增加一行,并替换为实际 UUID:
UUID=11111111-2222-3333-4444-555555555555 /data ext4 defaults,nofail 0 2
mount -a
findmnt /data
df -hT /data
新文件系统默认通常归 root 所有。如果应用需要写入 /data,应按应用实际运行账号设置权限。例如应用账号为 appuser:
chown appuser:appuser /data
chmod 750 /data
不要为了省事直接执行 chmod 777 /data,这会允许所有本地用户写入目录,存在安全风险。
Win + R 打开“运行”。diskmgmt.msc,按 Enter。Data。如果无法使用图形界面,可用管理员身份打开 PowerShell 或命令提示符,执行:
diskpart
list disk
select disk N
detail disk
online disk
attributes disk clear readonly
convert gpt
create partition primary
format fs=ntfs quick label=Data
assign letter=D
list volume
exit
请将 N 替换为新增磁盘的编号,并在执行 convert gpt 之前通过 detail disk 再次确认容量和型号。若磁盘已经是 GPT,可跳过 convert gpt。不要对包含数据的磁盘执行 clean。
/dev/nvme1n1p1,而不是 /dev/nvme1n11。lsblk -f 或 blkid 已显示文件系统和 UUID,应先确认磁盘是否包含数据。/etc/fstab 使用 UUID 比直接使用 /dev/sdb1 更可靠。mount -a。如有报错,应先修正,避免重启后进入紧急模式。nofail 可让系统在数据盘暂时缺失时继续启动,但依赖该目录的业务仍可能启动失败,应配合业务监控使用。/data 中原有文件不会被删除,但会暂时不可见。应在挂载前确认目录为空或完成数据迁移。在 mount -a 测试无误并安排好业务维护窗口后,可重启服务器验证永久挂载:
reboot
服务器启动后执行:
findmnt /data
df -hT /data
ls -ld /data