如何更改ubuntu启动时加截硬件驱动的顺序

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
1981
帖子: 6
注册时间: 2008-11-28 17:15

如何更改ubuntu启动时加截硬件驱动的顺序

#1

帖子 1981 » 2010-12-07 11:14

最近公司刚增加了台DELL MD1200的阵列柜,把这台阵列柜连接到DELL R610的服务器上,结果R610服务器的本地硬盘变成了sdb,而MD1200的阵列盘变成了sda,dell那边说要改动硬件驱动的加载顺序,也发了份Redhat的参考资料,但我看了下ubuntu,好像差别挺大的,不知道那位兄弟知道的,指点下,谢谢!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何更改ubuntu启动时加截硬件驱动的顺序

#2

帖子 eexpress » 2010-12-07 11:15

sda sdb 没啥区别啊。
● 鸣学
1981
帖子: 6
注册时间: 2008-11-28 17:15

Re: 如何更改ubuntu启动时加截硬件驱动的顺序

#3

帖子 1981 » 2010-12-07 11:20

是没多大区别,就是使用习惯,感觉怪怪的,特别别扭 :em06
1981
帖子: 6
注册时间: 2008-11-28 17:15

Re: 如何更改ubuntu启动时加截硬件驱动的顺序

#4

帖子 1981 » 2010-12-07 11:22

DELL厂家发过来的参考资料如下,那位兄弟帮忙瞧瞧,怎么整才行:
-----------------------------------------------------------------------------------
Linux下当你添加了外部磁盘柜(或者添加另外一套磁盘存储子系统)后,本地的磁盘的顺序可能会变成sda之后的其他设备名,而不是sda了。

请参考以下资料解决问题:

我们的例子中使用一台 PE2950 ,本地磁盘是PERC5i,外部是SAS5E接MD3000,客户从MD3000上划分了 2 个LUN给主机,主机上有一个LUN

首先检查 /etc/modprobe.conf 文件(Redhat Linux AS3是 /etc/modules.conf)
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptscsih
alias scsi_hostadapter2 megaraid_sas
alias usb-controller ehci-hcd
alias usb-controller1 uhci-hcd

从上面可以看到SCSI控制器驱动的加载顺序是先加载了 SAS5E 的mptbase和mptscsih,然后才是PERC5i的megaraid_sas,所以当你从MD3000分配了LUN给机器以后,MD3000上的LUN将会占用了前面的设备符sda,sdb,本机的则成为了后面的sdc了。

要解决这个问题必须将 SCSI 控制器驱动的加载顺序调整过来,并重新创建启动映像文件。

调整后的 modprobe.conf 文件:
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter megaraid_sas
alias scsi_hostadapter1 mptbase
alias scsi_hostadapter2 mptscsih
alias usb-controller ehci-hcd
alias usb-controller1 uhci-hcd

调整后重新创建启动映像文件:(建议先备份 /boot/initrd-`uname -r`.img 这个原始的映像文件)
mkinitrd –f /boot/initrd-`uname -r`.img `uname -r`
以上命令中 `uname -r` 部分会自动替换成为Linux的版本号

注意事项:
请检查你的/boot/grub/grub.conf 文件:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux AS (2.6.9-42.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.9-42.ELsmp.img
title Red Hat Enterprise Linux AS-up (2.6.9-42.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.9-42.EL.img

请确定以上红色部分的内容,root=LABEL=/表示根分区是在哪个设备,这里代表去寻找卷标为 / 的一个分区,采用卷标方式寻找根分区可以避免设备编号混乱而找不到根,导致系统无法启动。

可以使用 e2label 命令检查和设置各个分区的卷标
检查 /dev/sda1 的卷标:
e2label /dev/sda1

设置 /dev/sda1 的卷标为 /boot :
e2label /dev/sda1 /boot

请检查你的 /etc/fstab 文件,确定也是采用卷标名称挂载各分区:
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults,nodev 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults,nodev 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults,nodev 1 2
LABEL=/usr /usr ext3 defaults,nodev 1 2
LABEL=/var /var ext3 defaults,nodev 1 2
LABEL=/wls /wls ext3 defaults,nodev 1 2
LABEL=SWAP-sda7 swap swap defaults 0 0
LABEL=SWAP-sda8 swap swap defaults 0 0
LABEL=SWAP-sda9 swap swap defaults 0 0
/dev/scd0 /media/cdrom auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed,nodev,nosuid 0 0

常见SCSI 控制器驱动模块名称对应举例:
Adaptec 39160 SCSI
aic7xxx
aic79xx

PERC3di
aacraid

QLogic HBA
qla22xx
qla23xx
qla24xx

PERC4
megaraid
megaraid_scsi

PERC5
megaraid_sas

SAS5卡(两个同时存在,mptscsih 依赖于 mptbase,mptbase必须在前面)
mptbase
mptscsih
1981
帖子: 6
注册时间: 2008-11-28 17:15

Re: 如何更改ubuntu启动时加截硬件驱动的顺序

#5

帖子 1981 » 2010-12-07 11:27

我查了下网上的资料,说ubuntu更改驱动加载顺序的文件是/etc/modules,我看了下ubuntu10.04版本的系统,发现这文件就两三行,没redhat的那些行
回复