如何阻止Azure Linux VM临时磁盘自动格式化并挂载?
阻止Azure Linux VM临时磁盘自动格式化与挂载的方法
Azure Linux VM的临时磁盘自动格式化、挂载行为由Azure Linux代理(waagent)或cloud-init控制,不同发行版依赖组件略有差异,以下是通用解决方案:
方法一:修改waagent配置
- 编辑代理配置文件:
sudo vi /etc/waagent.conf - 找到对应配置项并修改为以下值:
ResourceDisk.Format=n:禁用自动格式化临时磁盘ResourceDisk.MountPoint=:清空挂载点配置,取消自动挂载ResourceDisk.EnableSwap=n:无需交换分区时一并关闭该功能
- 保存配置后重启服务:
sudo systemctl restart waagent
方法二:通过cloud-init覆盖配置(适用于Ubuntu、CentOS 8+等支持cloud-init的发行版)
- 创建自定义cloud-init配置文件,比如
/etc/cloud/cloud.cfg.d/99-azure-custom.cfg,添加内容:disk_setup: ephemeral0: table_type: 'gpt' layout: true overwrite: false fs_setup: - device: ephemeral0.1 filesystem: 'none' mount: - [ephemeral0, none] - 该配置会告知cloud-init不对临时磁盘执行格式化和挂载操作。
方法三:创建VM时提前配置
- Azure CLI方式:创建VM时通过
--custom-data参数指定上述cloud-init配置文件:az vm create \ --resource-group myResourceGroup \ --name myVM \ --image UbuntuLTS \ --size D2ds_v4 \ --custom-data ./custom-cloud-config.cfg - Azure Portal方式:创建VM时在「高级」选项卡的「自定义数据」中填入上述cloud-init配置内容。
后续自行处理磁盘
完成以上配置后,临时磁盘会保持未格式化状态,你可按以下步骤自行操作:
- 查看磁盘设备名:
lsblk(通常为/dev/sdb或/dev/nvme1n1,依实例类型而定) - 按需分区格式化:例如
sudo mkfs.xfs /dev/nvme1n1(替换为你需要的文件系统) - 创建自定义挂载点:
sudo mkdir /mnt/my-temp-disk - 写入fstab实现永久挂载:
echo "/dev/nvme1n1 /mnt/my-temp-disk xfs defaults 0 0" | sudo tee -a /etc/fstab - 立即挂载磁盘:
sudo mount /mnt/my-temp-disk
内容的提问来源于stack exchange,提问作者BeeOnRope
相关产品推荐
相关产品推荐

