阿里云轻量应用服务器 Ubuntu 24.04 新数据盘分区、格式化及自动挂载完整指南

阿里云轻量应用服务器官网页面
阿里云轻量应用服务器

操作背景与前提说明

图1: 阿里云轻量应用服务器管理控制台的服务器概览页面,显示已挂载的 40 GiB 数据盘当前未使用(0 GiB),并提供“初始化引导”的提示链接。这表示该数据盘虽然已经成功挂载到实例(硬件连接完成),但尚未在操作系统中进行分区和格式化等初始化,因此系统内无法直接使用这块磁盘存储数据。通常在 Ubuntu 等 Linux 系统中,新挂载的空数据盘需要手动执行分区、创建文件系统并挂载到目录,才能正式使用。

在开始之前,请确认以下前提:

  • 已挂载空数据盘: 确认您已经通过阿里云轻量应用服务器控制台为实例添加并挂载了一块空的数据盘(如容量 40 GiB)。在控制台中该数据盘应显示为“使用中”状态,但尚未初始化(如图1所示)。轻量应用服务器的系统盘通常映射为设备/dev/vda,新数据盘一般映射为/dev/vdb(如果有多块数据盘,命名可能依次递增为vdc、vdd等)。
  • 操作系统与权限: 确认实例操作系统为 Ubuntu 24.04,并且您已通过 SSH 或远程终端登录到服务器,拥有管理员权限(可以使用 sudo 或直接以 root 用户运行命令)。后续操作需要对存储设备进行修改,请确保具备相应的权限。
  • 避免误操作系统盘: 务必识别正确的磁盘设备名称。系统盘通常为/dev/vda(或者/dev/sda视环境而定),而新数据盘为/dev/vdb。可以使用 lsblkfdisk -l 等命令来列出系统中的磁盘及分区,借此核对哪一个是新加的数据盘。例如,执行以下命令查看系统中的磁盘设备:
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda    252:0    0    50G  0 disk 
└─vda1 252:1    0    50G  0 part /
vdb    252:16   0    40G  0 disk 

上面的输出中,vda 是系统盘(已挂载/根分区,大小50G),而 vdb 是新挂载的40G数据盘(TYPE显示为disk且没有挂载点)。请确保后续对磁盘的操作针对的是新数据盘 /dev/vdb 而不是系统盘,以免造成系统数据丢失。

准备就绪后,接下来将对新数据盘依次进行分区、格式化、挂载,并配置开机自动挂载。

分区操作(使用 fdisk 对数据盘分区)

新数据盘在初始状态下没有分区表,需先创建分区。本指南以在数据盘 /dev/vdb 上创建一个使用整个磁盘容量的主分区为例,使用 fdisk 工具进行分区。以下是具体的操作步骤及交互流程:

  1. 创建新分区:Command (m for help): 提示下输入 n 并按回车,表示新建分区。随后 fdisk 将询问分区类型和编号:
    • 选择分区类型: 出现提示“Partition type: (primary/extended)”时,输入 p 并回车,选择创建主分区(primary)。(fdisk 默认为主分区,这里直接回车也会选择 p)
    • 指定分区编号: 当出现 “Partition number (1-4, default 1):” 提示时,直接按回车采用默认的分区编号 1。这意味着将创建第1个主分区。
  2. 指定分区起始和大小: 接下来会提示设置新分区的起始扇区和末尾扇区:完成上述输入后,fdisk 将反馈类似“Created a new partition 1 of type ‘Linux’ and of size XX GiB”的消息(其中XX应接近数据盘的总容量,例如约40GiB),表示新分区已在内存中创建。此时我们的新数据盘有了一个分区,临时命名为 /dev/vdb1,但更改尚未写入磁盘。
    • 起始扇区(First sector): fdisk 会给出可用范围并提供一个默认起始扇区(通常是2048)。直接按回车,采用默认值(从磁盘可用空间的起始位置开始分区)。
    • 末尾扇区(Last sector): fdisk 接着提示输入分区的最后一个扇区或大小。如果想让该分区使用磁盘剩余的全部空间,可直接按回车采用提示的默认末尾扇区(这时 fdisk 将把分区扩展到整个磁盘的末尾)。
  3. 保存分区表并退出: 在再次出现的 Command (m for help): 提示下,输入 w 并按回车。该命令用于将内存中所做的分区更改写入磁盘的分区表。执行 w 后,fdisk 将提示“The partition table has been altered”并退出交互模式。至此,分区操作完成,新分区 /dev/vdb1 已正式写入磁盘。

验证分区结果: 可以使用 lsblkfdisk -l 再次查看分区情况,确认新分区已创建成功。例如,使用 lsblk 查看:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda    252:0    0    50G  0 disk 
└─vda1 252:1    0    50G  0 part /
vdb    252:16   0    40G  0 disk 
└─vdb1 252:17   0    40G  0 part 

可以看到,此时 vdb 磁盘下已经出现了分区 vdb1,大小约为40G,与整个数据盘容量一致。这说明数据盘分区成功。如果未看到新分区,或者操作有误,可以重新运行 fdisk /dev/vdb 进行调整;在 fdisk 中输入 q 放弃更改并退出可不保存之前的操作结果,然后重新分区。

启动 fdisk 分区工具: 在终端输入命令 sudo fdisk /dev/vdb 并按下回车。这里将对 /dev/vdb 磁盘进行分区操作。执行该命令后,fdisk 会启动交互式命令提示符。您将看到类似如下的提示信息:

$ sudo fdisk /dev/vdb  
Welcome to fdisk (util-linux 2.34).  
Changes will remain in memory only, until you decide to write them.  
Be careful before using the write command.  

如果磁盘尚无分区表,fdisk 会提示“Device does not contain a recognized partition table”并可能自动创建一个新的 DOS 磁盘标签(MBR 分区表)。这属于正常现象。

注意:针对 2 TiB 以上的大容量磁盘,建议使用 GPT 分区表而非 MBR 分区表。fdisk 默认创建的是 DOS/MBR 分区表(支持最大约2TiB的分区);如果数据盘容量超过2TiB,或需要创建多个分区,您可以在 fdisk 中使用 g 命令创建 GPT 分区表,再按照以上步骤创建分区。Ubuntu 24.04 的 fdisk 工具支持 GPT 分区,但是在确认写入时务必留意提示信息。如果计划将来扩大数据盘容量(通过阿里云扩容磁盘等操作),使用 GPT 分区表也更为稳妥。对于本指南中的40GiB示例,默认的 MBR 分区表已足够。

格式化分区为 ext4 文件系统

完成分区后,新分区目前还没有文件系统类型(如上面的 lsblk 输出中 vdb1 的 FSTYPE 列为空)。下一步需要在该分区上创建文件系统(格式化)。Ubuntu 系统常用的文件系统为 ext4(Linux 默认且稳定可靠),我们将把新分区格式化为 ext4 类型。

使用命令 mkfs.ext4 (或 mkfs -t ext4)来格式化分区。在终端执行以下命令:

sudo mkfs.ext4 /dev/vdb1

上述命令会在 /dev/vdb1 分区上创建 ext4 文件系统。执行过程中系统将输出文件系统创建的进度信息,例如 inode 表、journal 创建等。典型输出示例如下:

mke2fs 1.46.5 (26-Feb-2021)
Creating filesystem with 1048552 4k blocks and 262144 inodes
Filesystem UUID: 1234abcd-56ef-78ab-90cd-1234567890ef
Superblock backups stored on blocks: 
    32768, 98304, 163840, ... (省略部分输出)

当看到 “Writing superblocks and filesystem accounting information: done” 时表示格式化完成。现在,分区 /dev/vdb1 上已经有一个 ext4 文件系统。如上输出所示,格式化过程中会生成一个文件系统的 UUID(例如 1234abcd-...这一串值);该 UUID 在稍后配置开机自动挂载时会用到。

注意:ext4 文件系统是 Linux 环境下通用且默认的选择。在某些特殊需求下,您也可以选择其他文件系统类型(如 XFS 等),但 ext4 在绝大多数场景下都足够使用且性能稳定。本指南以 ext4 为例进行说明。

创建挂载目录

分区格式化完成后,需要选择一个目录作为挂载点,将该分区挂载到文件系统中。挂载点可以是现有的空目录,也可以是新建目录。根据实际需求选择挂载位置,例如常见做法是在根目录下创建一个专门用于数据盘的目录,如 /data/mnt/data 或根据用途命名(例如 /mnt/backup/data/www 等)。

在此示例中,我们创建一个名为/data的目录作为挂载点。执行命令:

sudo mkdir -p /data

上述命令将创建 /data 目录(-p参数表示如有必要会递归创建父目录,但这里/下直接创建无需父目录)。您可以根据需要调整目录名称和路径。请确保该目录当前为空且未被占用;如果使用了一个已有目录作为挂载点,挂载后原目录中的内容将被隐藏,只有卸载后才能看到,这可能不是预期行为。因此通常会新建一个空目录来挂载。

临时挂载分区到目录

现在可以将新格式化的分区临时挂载到前一步创建的目录上,以便立即使用。所谓“临时”是指当前挂载仅在本次系统运行期间有效,服务器重启后需要重新挂载(稍后我们会配置开机自动挂载)。临时挂载使用 mount 命令完成。

执行以下命令将 /dev/vdb1 挂载到 /data 目录:

sudo mount /dev/vdb1 /data

该命令没有输出则表示挂载成功。此时可以通过 df -h 或再次使用 lsblk 来验证挂载是否成功:

$ df -h | grep /data
/dev/vdb1        40G   24K   38G   1%  /data

上面的 df -h 输出显示 /dev/vdb1 已挂载到 /data,大小40G,已使用24K(格式化ext4后文件系统自身占用少量空间),挂载成功。或者使用 lsblk 查看:

$ lsblk
NAME   SIZE FSTYPE TYPE MOUNTPOINT
vda    50G        disk 
└─vda1 50G ext4   part /
vdb    40G        disk 
└─vdb1 40G ext4   part /data

可以看到 vdb1 的 FSTYPE 显示为 ext4,MOUNTPOINT 显示为 /data,这表明 数据盘已经成功挂载 到指定目录。现在您可以像使用普通目录一样在 /data 下读写文件,数据将实际存储在新挂载的数据盘上。

配置开机自动挂载

为了在服务器重启后数据盘依然能够自动挂载到指定目录,我们需要将挂载信息写入系统的 /etc/fstab 配置文件中。fstab 文件用于定义系统启动时应自动挂载的文件系统。通过将新分区的 UUID 和挂载点添加进去,可以实现在开机时自动挂载。操作步骤如下:

测试 fstab 配置: 不重启机器就可以测试 fstab 配置是否正确。首先确保当前 /data 挂载已卸载,以便测试重新挂载过程:执行 sudo umount /data 将刚才的临时挂载卸除(卸载前请确认当前目录不在/data内,否则会导致设备忙而无法卸载)。然后运行:

sudo mount -a

该命令会按照 /etc/fstab 的配置尝试挂载所有未挂载的文件系统。如果命令执行后无错误信息输出,则表示 fstab 新增条目语法正确、挂载成功。您可以再次使用 lsblkdf -h 验证 /data 是否已由 /dev/vdb1 挂载。如果出现错误,例如拼写错误或UUID不正确,系统会报错或拒绝挂载,此时请重新编辑 /etc/fstab 更正问题,然后再次执行 mount -a 测试,直至无误。**重要:**在确保 mount -a 测试通过后,再重启系统进行验证。因为错误的 fstab 配置可能会导致系统下次启动时进不了正常环境(会进入单用户维护模式等待人工修复)。因此建议务必在修改后用 mount -a 验证。最后,可以尝试重启服务器(sudo reboot),重启后登录验证 /data 是否自动挂载成功,以完全确保配置生效。

编辑 fstab 添加挂载条目: 使用您熟悉的文本编辑器(如 vimnano)打开系统的 fstab 文件:

sudo vim /etc/fstab

然后在文件末尾添加一行新的挂载配置。按照以下格式书写(每个字段以空格或制表符分隔):

UUID=<上面获取的UUID>   <挂载点目录>   <文件系统类型>   <挂载选项>   <dump>   <fsck>

基于我们的示例,应添加如下行:

UUID=1234abcd-56ef-78ab-90cd-1234567890ef   /data   ext4   defaults   0   0

请将 1234abcd-...替换为实际的 UUID 值。各字段含义如下:第一列使用UUID指定设备;第二列是挂载点(这里是/data);第三列文件系统类型为 ext4;第四列挂载选项使用defaults表示使用默认选项(读写、自动、无需额外参数等);第五、第六列设置转储备份和开机磁盘检查,一般非特殊需求下都设为0(表示不启用转储和不对该分区执行开机自检,可避免影响启动过程)。编辑完成后,保存并退出编辑器。可以再次运行 cat /etc/fstab 检查新添加的行是否正确无误。确保每个字段间至少有一个空格或制表符分隔,尤其是 UUID= 和挂载点之间不要漏空格。

备份 fstab 文件(可选): 在修改 /etc/fstab 之前,建议先备份该文件以防万一配置错误导致系统启动问题。可以执行:

sudo cp /etc/fstab /etc/fstab.bak

这会创建一个备份副本 /etc/fstab.bak

获取分区的 UUID: 使用 blkid 工具查询新分区的 UUID 值。执行命令:

sudo blkid /dev/vdb1

该命令将输出包含 /dev/vdb1 信息的一行内容,例如:

/dev/vdb1: UUID="1234abcd-56ef-78ab-90cd-1234567890ef" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="abcd1234-01"

请复制或记下其中的 UUID="..."部分的值(不包括引号),这是分区的唯一标识符。使用 UUID 挂载比直接使用设备名更可靠,因为设备名称(如 vdb1)在某些情况下可能变化,而 UUID 基本不会改变。

(可选)调整挂载目录权限设置

默认情况下,新挂载的目录(如 /data)的拥有者是 root 用户,权限通常为只有管理员可读写,其他用户只读。这是因为挂载继承的是文件系统根的权限设定。如果此数据盘将被用于特定应用或非 root 用户访问,可能需要调整目录的所有者和权限。

根据用途,您可以进行如下设置:

  • 调整读写权限: 根据需要,您还可以使用 chmod 命令调整目录的读写执行权限。例如,将 /data 目录开放给所有用户读写(不太安全,一般不建议)可以用 sudo chmod 777 /data;或者只允许属主读写、其他用户仅读,可以用 sudo chmod 755 /data 等。权限的具体设置应视安全需求而定。多数情况下,通过 chown 设置属主已经足以满足使用,除非有更复杂的多用户访问需求。

用于 Web 服务目录: 如果此数据盘打算用于部署网站或Web应用的数据(例如作为 Nginx/Apache 的站点目录),通常 Web 服务程序运行用户为 www-data(Ubuntu 默认的Web用户)。可以将挂载目录权限赋给 www-data 用户:

sudo chown -R www-data:www-data /data

这样 Web 服务就有权限在 /data 下读写。例如,之后可以将网站的/var/www目录符号链接或挂载到 /data,以充分利用数据盘空间存放网站内容。

赋予普通用户权限: 如果希望当前登录的非 root 用户对 /data 具有读写权限,可以将该目录的所有者改为该用户。例如,假设您以用户“ubuntu”登录(Ubuntu 默认管理员用户),执行:

sudo chown -R ubuntu:ubuntu /data

这会将 /data 目录以及其中所有子文件(当前为空)的拥有者修改为用户 ubuntu,用户组也改为 ubuntu。随后普通用户 ubuntu 即可在 /data 下创建文件、写入数据而不会遇到权限问题。您也可以根据需要使用自己的用户名替换上述命令中的“ubuntu”。

设置权限时需谨慎,确保既满足应用需求又不留下安全隐患。通常不建议将数据盘挂载目录开放为完全可写的公共目录(777权限),而是尽量限定在需要的用户范围内。

(可选)数据盘的推荐使用场景

将单独的数据盘挂载到系统中特定目录下,可以用于多种场景以提升数据管理的灵活性和安全性。根据经验,以下是一些常见且推荐的使用场景:

  • 网站或应用的数据存储: 可以将网站的资源文件、上传内容、媒体资料等存放在数据盘(例如挂载到/data/www),避免占用系统盘空间。对于采用轻量应用服务器搭建的网站,将/var/www或其他应用目录迁移到数据盘有助于在重装系统或迁移时保留数据不丢失。
  • 日志存储: 大量的日志文件(如访问日志、应用日志)会逐渐消耗存储空间。可以将 /var/log 或应用的日志目录挂载或链接到数据盘(例如/data/logs),这样一来即使日志非常多也不会填满系统盘,同时日志数据和系统分离便于备份和清理。
  • 数据库和备份: 如果在轻量应用服务器上运行数据库(如 MySQL/MariaDB、MongoDB 等),可以考虑将数据库的数据目录放置在数据盘上。例如创建/data/mysql用于存储 MySQL 的数据文件。这不仅提供了更大的存储空间,也方便对数据库文件单独备份。类似地,各种定期的备份文件、归档数据也适合保存在独立的数据盘(如/data/backup),以免占用系统盘。
  • 文件存储与共享: 对于需要在服务器上保存大量文件(例如图片、视频、文档)的应用,把这些文件存储目录放到数据盘可以减小系统盘的压力。如果将轻量应用服务器作为文件中转或私有云盘,用数据盘存储文件能够获得更大的容量。

以上场景中,使用独立的数据盘都有助于隔离系统和数据。这意味着在重装或更换操作系统时,可以只对系统盘进行操作,而数据盘保持原样并重新挂载即可,减少重要数据丢失的风险。同时,不同类型的数据可以通过不同挂载点进行归类管理,维护起来也更方便。

附加注意事项

  • 务必识别正确的设备: 再次强调,不要对系统盘误操作。在执行诸如 fdiskmkfs 等操作时,仔细核对目标是否为新数据盘(如本文的 /dev/vdb)。可以通过磁盘容量大小、已有分区情况来判断:系统盘通常在安装系统时已分好区并有挂载,数据盘在初始化前一般无分区、无挂载且大小为您新增加的容量。使用 lsblk -ffdisk -l 可以清楚地看到这一点。
  • 确保命令正确无误: 在Ubuntu 24.04环境下,本文列出的命令和路径都是经过验证的标准用法。输入命令时请注意大小写和空格。尤其是编辑 /etc/fstab 时,任何拼写错误都可能导致挂载失败甚至影响系统启动。养成修改系统配置前备份的习惯,一旦配置出错可通过恢复备份文件来挽回。
  • 验证磁盘状态: 完成挂载配置后,建议通过 reboot 重启服务器来最终验证数据盘是否能够随系统启动自动挂载。如果重启后发现数据盘未挂载或无法访问,应该立即检查 /etc/fstab 设置以及通过 sudo blkid 验证 UUID 是否匹配。此外,每次对磁盘分区或文件系统进行调整后,都可以使用 lsblk, df -Th 等命令来核实当前状态是否符合预期。
  • 磁盘管理的安全性: 切勿在未备份重要数据的情况下随意删除分区或重新格式化已经使用中的数据盘。如果需要重新分区或更改文件系统,先备份盘上的数据。执行 mkfs 等格式化操作会抹掉目标分区上的所有数据,在确认磁盘为空或不需要保留原有数据时才能执行。
  • 阿里云轻量应用服务器与数据盘限制: 轻量应用服务器通常支持挂载一块数据盘(具体以阿里云官方说明为准),容量有最大上限。例如本例中为40GiB。请根据需求选择合适的磁盘大小。如果需要更大的或多块数据盘,可能需要考虑使用阿里云 ECS 云服务器等产品。轻量应用服务器的磁盘性能相对固定,通过合理分配数据到数据盘,可以提升系统盘的利用率,并减小系统盘读写压力。
  • 控制台显示更新: 当您在系统内完成数据盘的初始化和挂载配置后,阿里云控制台可能会更新显示数据盘的使用情况。例如,在服务器概览或磁盘管理页面,会看到数据盘不再提示“未初始化”,并开始显示已用空间。您可以通过刷新控制台页面或重新进入磁盘管理来确认这一点。然而,控制台的显示有时存在延迟,更准确的信息以系统内命令查询为准。

通过以上步骤,您已经在 Ubuntu 24.04 系统的阿里云轻量应用服务器上成功初始化并挂载了一块新的数据盘。现在,这块数据盘可以在系统重启后自动挂载,并用于存储您的应用数据、备份或其他用途。在实际操作中,良好的规划和仔细的验证能够确保数据盘的使用安全可靠,为您的服务器应用提供充足且稳定的存储支持。

tengmmvp

tengmmvp

China