IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页操作系统LINUX → Linux磁盘设备文件混乱源于Linux内核自身

Linux磁盘设备文件混乱源于Linux内核自身

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  在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文件系统启动入口中做以下更改:

  LABEL=myroot / ext3 defaults 1 1

  LABEL=myhome /home ext3 defaults 1 1

  当然,以上两种都是为了不影响系统和文件系统的启动采用的变通方法,在实际的系统管理时还是要密切注意底层设备的变化,否则如果出现了磁盘分区误删除的事情罪过可就大了

关键词标签:Linux

相关阅读

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程安装红帽子RedHat Linux9.0操作系统教程使用screen管理你的远程会话使用screen管理你的远程会话GNU/Linux安装vmwareGNU/Linux安装vmware如何登录linux vps图形界面 Linux远程桌面连如何登录linux vps图形界面 Linux远程桌面连

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址linux tc实现ip流量限制dmidecode命令查看内存型号linux下解压rar文件安装红帽子RedHat Linux9.0操作系统教程Ubuntu linux 关机、重启、注销 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服务器硬盘IO读写负载