【转载】[原创]DIY install livecd 解决 gentoo 无法在 LSI 1068E SAS RAID 安装的问题

原文地址:http://www.linuxsir.org/bbs/thread364385.html 1. 事情起因 事情缘起于我的一个客户,这个客户由于项目需要,购买了一台组装的2U服务器。确认服务器的配置的过程中,我也给了客户一些参考的建议,没想到这成为了麻烦的源头。 服务器的配置简单如下:处理器:INTEL XEON 5520@2.26GHZ *2(一共8核16线程);内存:KINGSTON DDR3/1333 ECC REG 4GB*2(一共8GB);硬盘:SEAGATE SAS 10Krpm 300GB*2(做RAID1);主板:SUPERMICRO X8DTL-3(LSI 1068E RAID Controler onboard & 8*SAS ports)。机箱电源:千际2U+七盟550W/2U 问题就出在这个主板的LSI 1068E SAS RAID控制器上了,本来我自信满满,认为自己见多识广,做过的RAID已经很多,原没把这个RAID控制器放在心上,没想到就是这个1068E让我重新意识到自己还有多无知。 拿到机器之后,我当然还是安装自己最喜欢的gentoo。先是拿自己PNY 8G U盘插上(我在U盘上量产了一个逻辑USB CDROM,里面是gentoo amd64 mini install cd),按下电源开关,Ctrl+M进入RAID BIOS配置,轻松搞定RAID1配置(LSI RAID配置网上很多文章,有兴趣的可以找来看),重启,然后……认不出我的U盘…… 这等小事自然难不住我,拿出我的USB CDROM,放入真正的mini install cd(这机器没配光驱),重启,然后:gentoo dodmraid=lsi doscsi dosmp noapic nokeymap nosound回车,……成功引导! 提示符出来之后,驾轻就熟输入cfdisk,然后……空白,no disk found???!!! 小意思,fdisk -l,啥都没有。 College Football Jerseys 汗一个,这不是raid么,赶紧ls /dev/mapper –la。 Nike Air Max 2017 Grigio Uomo

啥?!就一个control???我的raid呢?赶紧dmesg,哦,发现了lsi设备,不过怎么是unkown device?我的硬盘怎么一个都看不到?我的sda、sdb、md啥啥都没有呢? lsmod、modprobe齐上阵,无效………… 小意思,哥别的不多,就发行版光盘多。 Nike Internationalist gentoo mini install不行,咱不有10周年纪念版livedvd么。 Scarpe Nike Air Max 90

老板,换碟! 无效………… 呦你个小样,还跟我闹脾气,咱再换:Centos5.4,大佬上阵,看你老实不。 无效………… 嘿嘿,小弟不行,大佬的大佬来:RHEL 5.4。 无效………… 哥这个时候开始有点湿了…… 唉,看来要请出大杀器了,咱也google一下吧。 Air Jordan 5 咦,怎么网上无答案?用1068E也不少人吧,不过咋都用Windows呢?欺负咱开源阵营无人是吧? 赶紧去LSI的网站上查查datasheet,哦,这玩意和fushion、mpt都有点关系,貌似freebsd对mpt的支持还是不错滴,用freebsd看看。 嘿嘿,这次成功识别到硬盘了,不过,是两个。我的raid呢? 赶紧去gentoo的官方论坛去瞅瞅。用1068e、lsi raid、mpt、sas等关键字反复搜索了几遍,发现苦主还真不少啊,不过大家怎么都没什么辙呢?甚至一个老哥和一位打算买1068E RAID卡的TX语重心长地规劝道:您还是换个别的吧。 adidas gazelle 有位TX想了半天,提出了个非常有建设性的建议:超微的SAS设置是有IT模式的,进入IT模式,就可以禁用RAID功能,但是可以认到mptsas硬盘。 ZOOM ALL OUT

然后用lvm做个纯软raid不就成了? 得,这位TX还真有建设性,去超微网站下载了主板说明书(地址:http://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-3.cfm),赶紧研究一下。 Solde adidas zx flux 开机箱,设IT模式,通电,放入gentoo mini install cd。嘿,您猜怎么着,sda/sdb出现啦!不过,等等,我怎么觉着有点东西不对劲呢?赶紧再重启,进入BIOS。果然,可引导设备中,原来的SCSI设备不见了,只剩下我的破USB CDROM了。 Maglie Dallas Mavericks 原来IT模式的硬盘不能直接引导…………我想了几下,还是忍住没进入主板的工厂模式,咱不能把客户的机器当小白老鼠啊。 West Virginia Mountaineers Jerseys 有点为难了,看来这小东西还真有点脾气。 Donne Scarpe Air Jordan 14 store locator for new balance shoes 回复到正常模式,硬盘还是找不到,看着启动信息中RAID1 ONLINE的字样,我就哭笑不得。 赶紧再去gentoo官网论坛溜达溜达吧,我就不相信国外能人那么多,就没人想到解决办法的,如果真这样,超微还卖个P主板啊。

  • Nike Foamposite One Uomo
  • 附带说一句,人家超微确实提供对RHEL/SUSE/WIN SERVER的官方驱动支持,不过咱是穷人,花不起那个操作系统的钱。 在官网论坛兜兜转转,终于被我在个墙角挖到个牛人,牛人说,默认的mptsas驱动是有个问题的,就是主板厂商设置的设备识别号和内核驱动中配置的是不同的,改改就好。 NIKE TANJUN nike sklep 重新启动一下系统,嘿,还果然。超微板子上的LSI 1068E识别为0×0059,而驱动中是0×0058,我#%¥@#…… 不过我犯难了,这破install cd的内核驱动,咱改不了啊,除非咱改install cd才行。 Fjällräven Kånken Väska Nike KD Trey 5 III 做事要大胆假设小心求证,为了保证不出错,还是先验证一下吧。 Nike Free 3.0
    工作这么多年,啥本事不见得有,不过这十八般兵器咱还是攒了几样的。有请我的外接USB硬盘! 这个硬盘尺寸不大,320GB SATA而已,因为是WD RE2的盘子,所以主要用来备份,上面有两个NTFS分区和一个reiserfs分区。以前极度无聊的时候把reiserfs做了个可引导的gentoo,这次可以派上用场了。 carpe asics running cumulus 接上硬盘,启动成功,当然,还是认不到sas硬盘,没关系,咱重新编译内核。 New Balance 993 damskie 修改了相应文件(具体文件在后文),重新编译内核,重启!嘿嘿,您猜怎么着?硬盘找到了!sda/sdb/sdc如期出现!!! 等等,怎么有个sdc?哦,是我的USB硬盘占了sda,两个sas自然就是b+c了。 看到这里,可能有TX问了,这问题不就解决了么?你可以用USB硬盘开始做系统了。 Air Jordan 3 Homme

    如果您这么认为,那您就错了。 Cheap Nike Shoes Outlet UK 这个系统是用sda+sdb来做raid1,而我的USB硬盘占用了sda,那么……………… 不过现在感觉大问题已经解决,可以确认解决方案了。 2. Fjallraven Kanken 20L 解决方案 初步确认的解决方案如下: *重新制作一张livecd来安装系统; *livecd中修改驱动解决mptsas识别问题; *在livecd中加入需要的raid工具。 心动不如行动,动手! 制作livecd的过程不赘述,请大家参考:http://en.gentoo-wiki.com/wiki/Build_Your_Own_LiveCD_or_LiveDVD。 我只说说我与原文做得不同的地方: 1) 我对make.conf做了一些修改,如下: [PHP] CFLAGS=”-mtune=generic -O3 -pipe -fomit-frame-pointer -mmmx -msse -msse2″ (注释:用-mtune=generic是因为我自己的机器是AMD Phenom处理器,而目标机器是Xeon) CXXFLAGS=”${CFLAGS}” MAKEOPTS=”-j3″ USE=”livecd ssl nls unicode cjk zh nptl nptlonly mmx sse sse2 -X -gtk -gnome \ -doc -kde -qt -cups -alsa -apache -java” ACCEPT_KEYWORDS=”~amd64″ LINGUAS=”zh_CN” SYNC=”rsync://rsync.asia.gentoo.org/gentoo-portage” GENTOO_MIRRORS=”http://mirrors.163.com/gentoo ftp://gg3.net/pub/linux/gentoo” [/PHP] 2) 我修改了locale.gen,如下 [PHP] en_US ISO-8859-1 en_US.UTF-8 UTF-8 zh_CN UTF-8 zh_CN.UTF-8 UTF-8 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030 [/PHP] 3) 由于我用了~amd64,所以可以使用最新的gcc 4.4.3,而官方stage中是4.3.4,这个问题要解决,所以需要先emerge gcc,然后用gcc-config 2来选择新的gcc,再emerge -C gcc-4.3.4。由于后面要emerge -e system,所以就不revdev-rebuild了。 Donne Scarpe Air Jordan 14 然后再emerge glibc。 Nike Air Max 2016 Femme 做过LFS的同学知道,这第一步算完成了。 adidas ultra boost męskie 然后就是emerge -e system。 Prince Amukamara 4) 编译内核部分,我怕有同学出错,所以我把我整个步骤列在下面(我在config里面去掉了很多对于我来说没用的驱动,不过这个配置选择过程不详细说明了): [PHP] # emerge gentoo-sources genkernel # cd /usr/src/linux # make allmodconfig # genkernel –dmraid –menuconfig all (注释:这里与wiki里面略有不同) # genkernel initramfs # mv /boot/initramfs-xxxx /boot/initrd # mv /boot/kernel-xxxx /boot/vmlinuz [/PHP] (接下来,我没有make clean) 现在来说说我对内核驱动修改的地方: [PHP] # cd /usr/src/linux/drivers/message/fusion/lsi [/PHP] 修改mpi_cnfg.h,找到0×0058这行,在下面加入: [PHP] #define MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP (0×0059) [/PHP] 然后: [PHP] # cd .. Asics Gel Nimbus 18 Dames [/PHP] 修改mptsas.c,找到static struct pci_device_id mptsas_pci_table这行,在 { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068E, PCI_ANY_ID, PCI_ANY_ID } 后面加入: { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP, PCI_ANY_ID, PCI_ANY_ID } 搞定! 5) 我没有执行:find / -type l ! -xtype f ! -xtype d -ok rm -f {} \; 这一步,因为一个一个确认,会很累人,呵呵。 6) 在配置grub的步骤,你如果按照原文做,你会死掉的,嘿嘿,下面是我的 [php] (注释:记得grub.conf cp成为menu.lst,不要用menu.lst的符号链接): default 0 timeout 5 splashimage=/boot/grub/splash.xpm.gz title LiveCD root (cd) (注释:我喜欢这样做,原文没有,但是我在这里确认用cd) kernel /boot/vmlinuz root=/dev/loop0 real_root=/dev/loop0 looptype=squashfs loop=/livecd.squashfs vga=ask initrd udev nodevfs cdroot dodmraid (注释:原文没有root=/dev/loop0,这是不对滴) initrd /boot/initrd title LiveCD NO-FB root (cd) kernel /boot/vmlinuz root=/dev/loop0 real_root=/dev/loop0 looptype=squashfs loop=/livecd.squashfs initrd udev nodevfs cdroot dodmraid initrd /boot/initrd title Memtest86+ root (cd) kernel /boot/memtest86plus/memtest.bin [/PHP] 7) 我安装了一些常见的工具: [PHP] # emerge dmraid megamgr megacli megactl megarc mdadm mpt-status # rc-update add mdadm boot; rc-update add mdraid boot; [/PHP] 8) 网卡配置这块,由于我是有开启了dhcp的内部路由器,所以: [PHP] # emerge dhcpcd # rc-update dhcpcd default # echo “config_eth0=(\”dhcpd\”)” > /etc/conf.d/net # echo “config_eth1=(\”dhcpd\”)” >> /etc/conf.d/net (注释:双网卡) [/PHP] 9) 到了同步的步骤,我写了一个脚本,首先在rsync的时候就做了一些exclude,rsync的脚本如下(在livecd目录下执行): [PHP] #!/bin/bash echo “syncing boot files…” rsync –delete-after –archive –hard-links –verbose ./source/boot ./target/ echo “” echo “syncing source files…” rsync –delete-after –archive –progress –verbose –exclude “var/tmp/*” \ –exclude “var/cache/*” –exclude “*.h” –exclude “usr/portage” \ –exclude “var/run/*” –exclude “var/log/*” –exclude “tmp/*” \ –exclude “*.a” –exclude “root/*” \ –exclude “etc/portage” –exclude “usr/share/doc” –exclude “usr/src” \ ./source/ ./target/files/source/ echo “syncing finished.” [/PHP] 10) 如果你有兴趣在livecd中包含stage3和snapshot的portage包,可以直接放在source下面的某个目录下,例如可以建一个目录叫做stage,然后统统放进去。当livecd挂载之后,可以在/mnt/livecd下面找到。 Nike Sko Nettbutikk 到此为止,livecd做好,把iso烧录到光盘上,我做好的iso差不多170MB大小。 3. 最终效果 废话不多说,只贴dmesg: [PHP] GDT-HA: Storage RAID Controller Driver. Version: 3.05 imm: Version 2.05 (for Linux 2.4.0) Fusion MPT base driver 3.04.13 Copyright (c) 1999-2008 LSI Corporation Fusion MPT SPI Host driver 3.04.13 Fusion MPT FC Host driver 3.04.13 Fusion MPT SAS Host driver 3.04.13 mptsas 0000:02:00.0: PCI INT A -> GSI 24 (level, low) -> IRQ 24 mptbase: ioc0: Initiating bringup ioc0: : Capabilities={Initiator} mptsas 0000:02:00.0: setting latency timer to 64 scsi4 : ioc0: , FwRev=011a0000h, Ports=1, MaxQ=478, IRQ=24 mptsas: ioc0: attaching ssp device: fw_channel 0, fw_id 0, phy 0, sas_addr 0x5000c500170623f1 scsi 4:0:0:0: Direct-Access SEAGATE ST3300656SS HS09 PQ: 0 ANSI: 5 sd 4:0:0:0: Attached scsi generic sg0 type 0 sd 4:0:0:0: [sda] 585937500 512-byte logical blocks: (300 GB/279 GiB) mptsas: ioc0: attaching ssp device: fw_channel 0, fw_id 1, phy 1, sas_addr 0x5000c50017062b99 scsi 4:0:1:0: Direct-Access SEAGATE ST3300656SS HS09 PQ: 0 ANSI: 5 sd 4:0:0:0: [sda] Write Protect is off sd 4:0:0:0: [sda] Mode Sense: b3 00 10 08 sd 4:0:1:0: Attached scsi generic sg1 type 0 sd 4:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA sd 4:0:1:0: [sdb] 585937500 512-byte logical blocks: (300 GB/279 GiB) sd 4:0:1:0: [sdb] Write Protect is off sd 4:0:1:0: [sdb] Mode Sense: b3 00 10 08 sda: sd 4:0:1:0: [sdb] Write cache: enabled, read cache: enabled, supports DPO and FUA sdb: sda1 sda2 sda3 < sda5 sdb1 sdb2 sdb3 sdb8 > sd 4:0:0:0: [sda] Attached SCSI disk sd 4:0:1:0: [sdb] Attached SCSI disk megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 EST 2006) megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 2006) megasas: 00.00.04.12-rc1 Thu Sep. 17 11:41:51 PST 2009 ……. sl811: driver sl811-hcd, 19 May 2005 device-mapper: uevent: version 1.0.3 device-mapper: ioctl: 4.16.0-ioctl (2009-11-05) initialised: dm-devel@redhat.com md: raid0 personality registered for level 0 usb 2-2: new high speed USB device using ehci_hcd and address 2 md: raid1 personality registered for level 1 md: raid10 personality registered for level 10 [/PHP] 然后 ls /dev/mapper -la,就会出现: [PHP] total 0 drwxr-xr-x 2 root root 200 Mar 1 08:58 . drwxr-xr-x 14 root root 13980 Mar 1 08:58 .. crw-rw—- 1 root root 10, 56 Mar 1 08:58 control brw-rw—- 1 root disk 253, 0 Mar 1 08:58 ddf1_4c53492020202020100000550000000038bcdb5b00001450 [/PHP] 这个设备名够长吧?哈哈哈,幸亏bash有tab自动完成功能。 然后就可以 [PHP] # cfdisk /dev/mapper/ddf1_4c53492020202020100000550000000038bcdb5b00001450 [/PHP] 来安装系统咯,和用普通的硬盘设备没啥区别了。 adidas zx 700 mujer 在分区写入之后,可能需要重新启动一下系统来识别新的分区表。另外,如果不确认,也可以用一下dmsetup mknodes。 接下来,就不用多说了吧。

    About 李 伟斌

    Just K.I.S.S To Be Or Not To Be, It's Your Qustion. --Keep It Simple & Stupid.
    This entry was posted in Linux, 操作系统 and tagged , , , , . Bookmark the permalink.

    发表评论