如何解决 Linux 虚拟机磁盘设备名不一致的问题
问题描述
在 Linux 虚拟机内,将附加的多块数据磁盘以设备名(/dev/sdxx)的方式创建文件系统,并将之写入 /etc/fstab 文件中实现启动自动挂载功能。但是在虚拟机重启之后,会随机出现设备名和实际的文件系统不一致的问题。
问题分析
由于 Azure 虚拟机在启动过程中,随机分配数据磁盘的 SCSI 地址,导致了数据磁盘在附加后,获取的 SCSI 地址会随机变化。比如原来的数据磁盘 A,初始的设备名为 /dev/sdc ,在重启之后,会随机的被分配为 /dev/sdd ,原来的数据磁盘 B,初始的设备名为 /dev/sdd,在重启之后,被分配为 /dev/sdc。这样的话,如果客户通过设备进行自动挂载的话,那么会看到挂载点下的实际数据是不一致的。
解决方案
为了避免上述的设计导致自动挂载时出现故障,建议使用 UUID 来代替设备名。不同文件系统的 UUID 是不会随着重启而改变的。这样,就可以确保每次自动挂载都能将正确的文件系统挂载到正确的挂载点。
- 按照以下命令获取文件系统的 UUID :
# blkid
/dev/sdb1: UUID="f788cc09-fad5-4df9-9360-ffe39d82****" TYPE="ext4"
/dev/sda1: UUID="9bb6e11f-4697-476a-9e71-0ebfff61****" TYPE="xfs"
/dev/sda2: UUID="445d96a9-aeb1-4623-a2db-be133bdf****" TYPE="xfs"
- 按照以下格式写入 /etc/fstab 文件 :
# cat /etc/fstab
…
…
UUID=445d96a9-aeb1-4623-a2db-be133bdf**** / xfs defaults 0 0
UUID=9bb6e11f-4697-476a-9e71-0ebfff61**** /boot xfs defaults
立即访问http://market.azure.cn
如何解决 Linux 虚拟机磁盘设备名不一致的问题的更多相关文章
- linux虚拟机磁盘扩展与分区大小调整
有段时间觉得linux虚拟机上的磁盘不太够用,研究了下其磁盘扩展 1.linux虚拟机磁盘扩展 step1. 先关机在编辑虚拟机中,找到硬盘选项增加空间,进行扩展step2. 进入root fdisk ...
- Linux 磁盘空间查询&&解决Linux 中“磁盘空间不足”的问题
一.linux 查看目录的剩余空间大小 两个命令df .du结合比较直观 df -h 查看整台服务器的硬盘使用情况 du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的 ...
- vmware 因误删Linux 虚拟机磁盘,无法启动处理方法
有可能我们在做了以下误操作,导致Linux系统无法启动: 1). 磁盘损坏或虚拟机磁盘被我们删除了,而fstab文件没有更新: 2). 由于误操作或其它原因使动态库错误. 1. 首先准备好系统安装盘, ...
- Vmware Linux虚拟机磁盘扩容方法
我的LINUX版本是ubuntu12.04 32bit.今天在下载android源代码的时候发现自己最初给这个虚拟机分配的磁盘空间不足了(只有20G).所以就需要给磁盘扩容.网上大致搜索了一下,主要有 ...
- ESXi以及WorkStation缩减thin provision模式Linux虚拟机磁盘的方法
1. 公司的服务器采用ESXi 进行管理. 有时候为了灵活性,需要将虚拟机从ESXi服务器上面导出来. 放置到不同的客户机器上面去. 2. 但是发现,比如我在linux里面安装了Oracle数据库, ...
- No space left on device 解决Linux系统磁盘空间满的办法
最近Linux电脑在执行mvn时候总是报错: No space left on device 原因是磁盘空间满了,我马上加了20G的硬盘容量,但是还是报错,上网查了一下,发现了解决方法,我用了其中 ...
- 最简单的Linux虚拟机磁盘扩容方法
思路:1.虚拟机增加磁盘容量: 2.将增加的磁盘容量增加到系统分区中: 准备阶段: 下载Gparted软件:https://sourceforge.net/projects/gparted/files ...
- 解决Linux服务器磁盘空间不足的问题
在linux服务器执行程序时报错: awk: write failure (No space left on device)awk: close failed on file /dev/stdout ...
- linux虚拟机磁盘不够用以及进行扩容时遇到的问题
我使用的是:gparted live cd工具 系统是centOS6.2 使用gparted live cd工具进行无损分区,方法很简单,下载iso文件都在VMware对应的linux系统上设置CD ...
随机推荐
- android 捕获未try的异常
1.Thread.UncaughtExceptionHandler java里有很多异常如:空指针异常,越界异常,数值转换异常,除0异常,数据库异常等等.如果自己没有try / catch 那么线程就 ...
- 让EntityFramwork自动更新表结构
在项目开发中,难免会遇到数据库表结构变化的情况,手动去维护数据库是一件繁琐的事情.好在EntityFramwork为我们这些懒人提供了可供自动更新数据结构的机制,废话不多说,直接上代码: 首先创建一个 ...
- how to install mapr sandbox
Sometimes we need a standalone envrionment to test Hadoop and Spark, mapr is a choice to do that in ...
- 014-CallbackServlet代码
package ${enclosing_package}; import java.io.IOException; import java.util.ResourceBundle; import ja ...
- fetch将替代ajax?
原谅我做一次标题党,Ajax 不会死,传统 Ajax 指的是 XMLHttpRequest(XHR),未来现在已被 Fetch 替代. 最近把阿里一个千万级 PV 的数据产品全部由 jQuery 的 ...
- Beta阶段个人总结
Beta阶段个人总结 这一次的项目在提出项目时有很大的信心能做好,但最后结果却不尽人意.由于这次的项目一开始目标是利用Android studio构建客户端然后电脑上连接数据库,在初期还未发现什么问题 ...
- android和Linux下getopt的差别
1. Linux下如果找不到相对应的参数,则会跳过继续找下一个 Android下如果找不到则会直接返回-1,跳出来 2. Linux下通过getopt后会把找到的元素放到数组的前面,没找到的往后移动( ...
- java--线程状态【转】
1.新建状态 Thread t1 = new Thread(); 创建之后,就已经有了相应的内存和其他资源,但是还是处于不可运行状态. 2.就绪状态 当一个线程使用.start()启动之后就处于就绪状 ...
- 个人多年经典收藏集合(SQL) 推荐大家收藏
1.SQL经典问题 查找连续日期 2.sqlserver 中charindex/patindex/like 的比较 3.SQL Server 跨服务器查询 4.SQLserver中字符串查找功能pat ...
- .net托管资源与非托管资源
在项目当中用到的资源分为托管资源和非托管资源,托管资源无非就是什么int.string.datatime之类,托管资源不需要人为去管理,.net framework中有专门针对托管资源的管理机制(GC ...