Joh*_*son 10 ssd amazon-ec2 amazon-web-services nvme ubuntu-16.04
我在 c5d.2xlarge 硬件上使用来自 AWS 的 Ubuntu 16.04 EC2。它配备了一个 200 GB 的 SSD,称为/dev/nvme1n1.
我可以使用以下方法安装此驱动器:
$ sudo mkfs.ext4 -E nodiscard /dev/nvme1n1
$ sudo mount -o discard /dev/nvme1n1 /home/ubuntu
Run Code Online (Sandbox Code Playgroud)
为了尝试让它自动挂载,我还添加了/etc/fstab:
/dev/nvme1n1 /home/ubuntu/spda ext4 defaults,users,nofail,discard 0 2
Run Code Online (Sandbox Code Playgroud)
我的问题:
当我停止/启动实例时,它似乎不会自动挂载。我不知道如何修复/调试。
当我手动挂载它时,创建的文件夹属于根目录,我无法以用户身份访问它。
我的目标是能够启动实例并且已经安装了驱动器并且用户可以访问。
您看到的200GB SSD 磁盘称为实例存储(或临时存储),每次停止实例时都会销毁,每次启动实例时都会创建新的磁盘。
这意味着两件事:
不要存储任何您想在停止/启动时保留的宝贵数据- 当您停止它时,它会全部消失。这些实例存储磁盘非常适合缓存、临时目录、交换空间等。如果丢失了可以轻松重新创建的任何东西。
每次启动实例时,磁盘都是空白的- 您必须先对其进行格式化(例如mkfs.ext4),然后才能使用它。下次停止/启动时,它将再次空白,您必须mkfs再次输入。
这就是为什么简单地将它添加到/etc/fstab是不够的 - 在引导脚本尝试安装它时不会格式化磁盘。
要解决您的问题,您必须创建一个自定义脚本,例如/usr/local/sbin/mount-instance-store.sh大致包含以下内容:
mkfs.ext4 -E nodiscard -m0 /dev/nvme1n1
mount -o discard /dev/nvme1n1 /home/ubuntu/spda
chown ubuntu:ubuntu /home/ubuntu/spda
Run Code Online (Sandbox Code Playgroud)
然后,您必须确保在启动时执行脚本。对于不同的发行版,这样做的方法是不同的,对于 Ubuntu 16.04,这应该有效:How to automatically execute shell script at startup boot on systemd Linux
希望有帮助:)
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |