[ZLG-ARM] Linux下磁盘设备文件(sda,sdb,sdc…)变化问题

[复制链接]
1612|1
 楼主| reeper 发表于 2009-4-6 13:17 | 显示全部楼层 |阅读模式
在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda,&nbsp;sdb,&nbsp;sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混乱,最常见的比如Linux文件系统的启动问题。很多人在遇到这种问题的时候都去找磁盘、阵列厂家,怀疑是他们的问题,其实这种底层的磁盘(单个磁盘或者RAID阵列)和Linux下磁盘设备文件的映射并不是磁盘、阵列厂家来决定的,而是Linux内核自身的原因。<br /><br />  目前Linux内核对于这种磁盘设备的映射基本上取决于三个顺序,一是磁盘驱动程序的加载;二是主机PCI插槽的监测;三是磁盘本身的监测,先来的当然是a,以此类推。所以,在出现热插拔了某些设备、重启等特殊情况下,实际磁盘在Linux下映射的设备文件可能由于这种“排队”的原因而发生改变,而这种底层“偷偷的”变化有时候会让管理员犯一些低级错误。<br /><br />  这是Linux&nbsp;Kernel的限制,所以目前还没办法来正面的克服应对,但有两个“迂回战术”的办法来减少可能出现的问题,一个是采用UUID设备唯一识别的方法,另一个是采用对设备卷做Label标识的办法。<br /><br />  一、&nbsp;UUID&nbsp;(globally&nbsp;unique&nbsp;identifier),唯一的身份识别,是采用SCSI&nbsp;Inquiry命令的Page&nbsp;83信息来映射磁盘设备的。例如我们可以在Linux下查询一些磁盘设备的UUID标识代码。<br /><br />bash#&nbsp;ls&nbsp;-la&nbsp;/dev/disk/by-id<br />total&nbsp;0<br />drwxr-xr-x&nbsp;2&nbsp;root&nbsp;root&nbsp;280&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;.<br />drwxr-xr-x&nbsp;5&nbsp;root&nbsp;root&nbsp;100&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;..<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;9&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;edd-int13_dev80&nbsp;-&gt&nbsp;../../sda<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;edd-int13_dev80-part1&nbsp;-&gt&nbsp;../../sda1<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;edd-int13_dev80-part3&nbsp;-&gt&nbsp;../../sda3<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;edd-int13_dev80-part4&nbsp;-&gt&nbsp;../../sda4<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;edd-int13_dev80-part5&nbsp;-&gt&nbsp;../../sda5<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:29&nbsp;edd-int13_dev80-part6&nbsp;-&gt&nbsp;../../sda6<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;9&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;scsi-3600050e03d7c67007bf400009f890000&nbsp;-<br />&gt&nbsp;../../sda<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;scsi-3600050e03d7c67007bf400009f890000-p<br />art1&nbsp;-&gt&nbsp;../../sda1<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;scsi-3600050e03d7c67007bf400009f890000-p<br />art3&nbsp;-&gt&nbsp;../../sda3<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;scsi-3600050e03d7c67007bf400009f890000-p<br />art4&nbsp;-&gt&nbsp;../../sda4<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;scsi-3600050e03d7c67007bf400009f890000-p<br />art5&nbsp;-&gt&nbsp;../../sda5<br />lrwxrwxrwx&nbsp;1&nbsp;root&nbsp;root&nbsp;10&nbsp;Mar&nbsp;11&nbsp;12:28&nbsp;scsi-3600050e03d7c67007bf400009f890000-p<br />art6&nbsp;-&gt&nbsp;../../sda6&nbsp;<br /><br />  &nbsp;找到了磁盘设备唯一的UUID代码后,就可以加到/etc/grub.conf和/etc/fstab中,这样即使初始的系统盘sda变成了sdb,但Linux和文件系统的启动加载都是按照UUID来的,所以上层也不会受到影响,例如,<br /><br />  &nbsp;在&nbsp;/etc/grub.conf系统启动入口中做以下更改:<br /><br />kernel&nbsp;/boot/vmlinuz-2.6.27.7&nbsp;root=/dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1&nbsp;<br /><br /><br />  &nbsp;在&nbsp;/etc/fstab文件系统启动入口中做以下更改:<br /><br />/dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1&nbsp;/&nbsp;ext3&nbsp;1&nbsp;1<br />/dev/disk/by-id/scsi-234892819987c8f828473829becf38289-part2&nbsp;/home&nbsp;ext3&nbsp;1&nbsp;1&nbsp;<br /><br /><br />  二、&nbsp;第二种算是比较老式的解决方法,即对磁盘卷设置Label标签,同样的道理,系统启动的时候只看标签,不看底层的sda/sdb等设备号,所以也不会影响到系统、文件系统的启动。例如,<br /><br />  使用e2label命令对sda1和sdb1设置标签:<br /><br />/sbin/e2label&nbsp;/dev/sda1&nbsp;myroot<br />/sbin/e2label&nbsp;/dev/sdb1&nbsp;myhome&nbsp;<br /><br /><br />  &nbsp;之后在&nbsp;/etc/grub.conf&nbsp;系统启动入口中做以下更改:<br /><br />kernel&nbsp;/boot/vmlinuz-2.6.29&nbsp;ro&nbsp;root=LABEL=myroot&nbsp;<br /><br /><br />  &nbsp;在&nbsp;/etc/fstab文件系统启动入口中做以下更改:<br /><br />LABEL=myroot&nbsp;/&nbsp;ext3&nbsp;defaults&nbsp;1&nbsp;1<br />LABEL=myhome&nbsp;/home&nbsp;ext3&nbsp;defaults&nbsp;1&nbsp;1&nbsp;<br /><br /><br />  &nbsp;当然,以上两种都是为了不影响系统和文件系统的启动采用的变通方法,在实际的系统管理时还是要密切注意底层设备的变化,否则如果出现了磁盘分区误删除的事情罪过可就大了。<br /><br /><br />
zcying 发表于 2009-4-6 15:51 | 显示全部楼层

很正常的,因为和windows的C、D、E的变化差不多吧

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

185

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部