我正在翻看本指南介绍如何将 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 上显示的方式。这篇文章与设备名称有点过时,但我仍然按照其中描述的方式执行其他操作。
披露:我写的那篇文章。