挂载 Amazon EBS 实例时 mkfs.xfs 和 modprobe 执行什么操作?

挂载 Amazon EBS 实例时 mkfs.xfs 和 modprobe 执行什么操作?

我正在翻看本指南介绍如何将 EBS 卷添加到 Amazon EC2 实例,我发现这小部分说明很难遵循:

在 EBS 卷上创建 XFS 文件系统并将其挂载为 /vol

grep -q xfs /proc/filesystems || sudo modprobe xfs
sudo mkfs.xfs /dev/sdh

echo "/dev/sdh /vol xfs noatime 0 0" | sudo tee -a /etc/fstab
sudo mkdir -m 000 /vol
sudo mount /vol

现在,您已经在 /vol 下安装了一个带有 XFS 文件系统的 10 GB(或您指定的任何大小)EBS 卷,并且如果实例重新启动,它将自动安装。

我不相信我已经mkfs.xfs安装了,尽管mkfs这是一个有效的命令。这对我来说有点太多的管道和高级语法 - 我试图弄清楚如何在 Ubuntu 10.04 上实现这一点,但我没有任何运气。

有人可以告诉我这里正在尝试什么,以便我可以尝试理解它并使其适用于我的 Ubuntu EC2 实例吗?

更新

我发现了一些事情:

  • 在我的例子中我必须使用/dev/xvdh而不是/dev/sdh
  • 仍然不确定grep -q xfs /proc/filesystems || sudo modprobe xfs正在做什么,因为运行这些命令中的每一个都没有显示任何结果。
  • afaik fstab 只是在启动时自动连接卷

答案1

grep -q xfs /proc/filesystems || sudo modprobe xfs

/proc/filesystems列出您的内核知道的所有文件系统。 (尝试cat /proc/filesystems查看。在结果列表中,nodev表明文件系统不需要关联的块设备。)

grep -q xfs /proc/filesystems检查您的内核是否了解 XFS 也是如此。 (这-q意味着“不打印任何内容,只设置退出状态。”)如果没有,它将运行sudo modprobe xfs以加载 XFS 模块。 (这意味着“仅当上一个命令非零退出时才运行下一个命令”,并且与创建管道的||单个命令无关。)|

sudo mkfs.xfs /dev/sdh

这会在块设备上创建一个空的 XFS 文件系统/dev/sdh(即格式化分区)。xfsprogs如果您没有 .xfs,则可能需要安装 XFS 工具包(通常称为) mkfs.xfs

echo "/dev/sdh /vol xfs noatime 0 0" | sudo tee -a /etc/fstab

这会附加一行,/etc/fstab以便在引导期间自动安装该卷。块设备需要与您格式化的块设备相匹配。

sudo mkdir -m 000 /vol

这将创建将安装新卷的目录。它可以是任何你喜欢的东西。它是在没有访问权限(模式 000)的情况下创建的,因此在未安装文件系统时没有人会向该目录写入任何内容。

sudo mount /vol

这会立即安装该卷,因此您无需重新启动。 (它从 获取安装参数/etc/fstab。)

答案2

如果mkfs.xfs没有安装,那么您跳过了本文中的这一步:

sudo apt-get install -y xfsprogs

你写了:

在我的实例中,我必须使用 /dev/xvdh 而不是 /dev/sdh

是的,这就是附加卷和临时存储在 EC2 上的现代版本 Ubuntu 上显示的方式。这篇文章与设备名称有点过时,但我仍然按照其中描述的方式执行其他操作。

披露:我写的那篇文章

相关内容