<i id='t570x'></i>

  1. <fieldset id='t570x'></fieldset>

    <i id='t570x'><div id='t570x'><ins id='t570x'></ins></div></i>
    <acronym id='t570x'><em id='t570x'></em><td id='t570x'><div id='t570x'></div></td></acronym><address id='t570x'><big id='t570x'><big id='t570x'></big><legend id='t570x'></legend></big></address><ins id='t570x'></ins>
  2. <tr id='t570x'><strong id='t570x'></strong><small id='t570x'></small><button id='t570x'></button><li id='t570x'><noscript id='t570x'><big id='t570x'></big><dt id='t570x'></dt></noscript></li></tr><ol id='t570x'><table id='t570x'><blockquote id='t570x'><tbody id='t570x'></tbody></blockquote></table></ol><u id='t570x'></u><kbd id='t570x'><kbd id='t570x'></kbd></kbd>
    <span id='t570x'></span>

          <code id='t570x'><strong id='t570x'></strong></code>
          <dl id='t570x'></dl>

          Linux磁盘设备文件(sda,sdb,sdc…)变化问题

          • 时间:
          • 浏览:5
          • 来源:124软件资讯网

            在Linux下往往会遇到这样的问题  ,磁盘的装备文件  ,好比/dev/sda, sdb, sdc等等在某些情形下会杂乱掉 ,好比sda酿成了sdb或者sdc酿成了sdb等等 ,这样无形中会导致磁盘装备治理的杂乱 ,最常见的好比Linux文件系统的启动问题  。许多人在遇到这种问题的时间都去找磁盘、阵列厂家  ,嫌疑是他们的问题  ,实在这种底层的磁盘(单个磁盘或者RAID阵列)和Linux下磁盘装备文件的映射并不是磁盘、阵列厂家来决议的  ,而是Linux内核自身的缘故原由 。

            现在Linux内核对于这种磁盘装备的映射基本上取决于三个顺序  ,一是磁盘驱动法式的加载;二是主机PCI插槽的监测;三是磁盘自己的监测  ,先来的固然是a  ,以此类推 。以是  ,在泛起热插拔了某些装备、重启等特殊情形下  ,现实磁盘在Linux下映射的装备文件可能由于这种“排队”的缘故原由而发生改变 ,而这种底层“偷偷的”转变有时间会让治理员犯一些低级错误 。

            这是Linux Kernel的限制  ,以是现在还没措施来正面的战胜应对  ,但有两个“迂回战术”的措施来淘汰可能泛起的问题  ,一个是接纳UUID装备唯一识此外要领  ,另一个是接纳对装备卷做Label标识的措施  。

            一、 UUID (globally unique identifier) ,唯一的身份识别  ,是接纳SCSI Inquiry下令的Page 83信息来映射磁盘装备的  。例如我们可以在Linux下查询一些磁盘装备的UUID标识代码  。

            bash# ls -la /dev/disk/by-id
            total 0
            drwxr-xr-x 2 root root 280 Mar 11 12:29 .
            drwxr-xr-x 5 root root 100 Mar 11 12:28 ..
            lrwxrwxrwx 1 root root 9 Mar 11 12:29 edd-int13_dev80 -> ../../sda
            lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part1 -> ../../sda1
            lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part3 -> ../../sda3
            lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part4 -> ../../sda4
            lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part5 -> ../../sda5
            lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part6 -> ../../sda6
            lrwxrwxrwx 1 root root 9 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000 -
            > ../../sda
            lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
            art1 -> ../../sda1
            lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
            art3 -> ../../sda3
            lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
            art4 -> ../../sda4
            lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
            art5 -> ../../sda5
            lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
            art6 -> ../../sda6

            找到了磁盘装备唯一的UUID代码后  ,就可以加到/etc/grub.conf和/etc/fstab中  ,这样纵然初始的系统盘sda酿成了sdb  ,但Linux和文件系统的启动加载都是根据UUID来的  ,以是上层也不会受到影响  ,例如  ,

            在 /etc/grub.conf系统启动入口中做以下更改:

            kernel /boot/vmlinuz-2.6.27.7 root=/dev/disk/by-id/scsi-
            3600050e03d7c67007bf400009f890000-part1

            在 /etc/fstab文件系统启动入口中做以下更改:

            /dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1 / ext3 1 1
            /dev/disk/by-id/scsi-234892819987c8f828473829becf38289-part2 /home ext3 1 1

            二、 第二种算是比力老式的解决要领  ,即对磁盘卷设置Label标签  ,同样的原理  ,系统启动的时间只看标签 ,不看底层的sda/sdb等装备号 ,以是也不会影响到系统、文件系统的启动  。例如 ,

            使用e2label下令对sda1和sdb1设置标签:

            /sbin/e2label /dev/sda1 myroot
            /sbin/e2label /dev/sdb1 myhome

            之后在 /etc/grub.conf 系统启动入口中做以下更改:

            kernel /boot/vmlinuz-2.6.29 ro root=LABEL=myroot

            在 /etc/fstab文件系统启动入口中做以下12下一页