当我从Azure上预设的Ubuntu映像创建VM时 - 没关系。它看起来像:
brutto@app-test-brutto:~$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 30224952 1391464 27298436 5% /
udev devtmpfs 851432 8 851424 1% /dev
tmpfs tmpfs 344108 236 343872 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 860268 0 860268 0% /run/shm
/dev/sdb1 ext4 72246600 331976 68244712 1% /mnt/resource
请参阅最后一行。作为 ext4 附加的资源磁盘。
但是,如果我从之前捕获的映像(基于 Ubuntu)创建 VM,它看起来像:
brutto@app1-test-brutto:~$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 30235684 1242036 27458060 5% /
udev devtmpfs 851432 8 851424 1% /dev
tmpfs tmpfs 344108 248 343860 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 860260 0 860260 0% /run/shm
/dev/sdb1 fuseblk 73398268 99232 73299036 1% /mnt
也见最后一行。资源磁盘附加 NTFS/fuseblk。
如何使用 ext4 资源磁盘从映像创建 VM?
我已经阅读了有关/etc/waagent.conf 的信息并尝试设置以下内容:
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt
比重新启动,但什么也没发生。
这是很久以前的事了,但看起来该错误已在 cloud-init 0.7.5 中重新出现,并且尚未发布任何解决方案或解决方法。
我的解决方案是黑客,但它有效。如果有人有任何改善(特别是在睡眠方面),我很乐意听到他们。
基本上在启动时运行一个脚本,该脚本首先休眠以确保磁盘已挂载,然后强制挂载点使用 ext4 文件系统,然后重新挂载:
sleep 30
sudo umount /mnt
sudo mkfs -t ext4 -F /dev/sdb1
sudo mount /mnt
并使用 cronjob 调度它:
$> crontab -e
加:
@reboot /path/to/script