因为实验室没有linux环境,我写的python软件里边有一个自己写的c++ extension,如果换到windows环境,需要重新编译,vc6里边的一大堆参数看的好烦,而且其中还用到了一个gnu的c++库,到 windows环境下麻烦一大堆,不如自己动手做个移动的linux环境,就是把linux装到移动硬盘上,在机房或者实验室随便找台机器就能跑自己的程序了。
qpbLinux联盟qpbLinux联盟因为有免费的ubuntu的盘,所以就打算在我的40G的移动硬盘上装这个系统,之前都是用的fedora,对debian系统还不是很熟悉,估计反正都差不多吧,顺便对比一下。
qpbLinux联盟qpbLinux联盟把usb硬盘插上电脑,把光盘插入光驱,关机重启,从光盘进入安装界面,一步一步按部就班就可以了,我的usb硬盘划了15G出来,用ubuntu的分区工具自动在空闲分区划分了根分区和swap分区,还挺实用的,比较适合新手,然后把系统安装到usb上,基本上没有让你选的东西,网络可以先不安装,安装到最后一步,安装grub时选安装到/dev/sdaX,X是你的linux分区。然后重启。
qpbLinux联盟qpbLinux联盟继续从光盘启动,boot:rescue模式再次进入安装界面,选择语言后,然后让你选择挂载分区,因为我用的是usb,我的linux分区是usb硬盘的第一个分区,就是sda1,而ide硬盘也已经自动挂载了,所以选分区的时候只能选/dev/discs/disc1/part1,这个需要根据自己的情况修改,然后选execute a shell,启动shell进入关键阶段。
qpbLinux联盟qpbLinux联盟1.修改mkinitrd的module文件,告诉kernel在启动的时候需要加载什么驱动,因为我们用的usb硬盘,必须告诉kernel,usb的驱动,不然没法解开kernel加载;
qpbLinux联盟qpbLinux联盟chroot /target
qpbLinux联盟把当前工作目录换到usb硬盘linux分区上,以后所有的操作都是在这个分区上,而不是rescue系统临时搞出来的ram分区。
qpbLinux联盟然后启动编辑器nano,vi也可以,看你喜欢哪个了,不过我的nano没起来,奇怪的很,我只有用vi了。
qpbLinux联盟vi /etc/mkinitrd/modules
qpbLinux联盟添加下列东东
qpbLinux联盟ehci_hcd
qpbLinux联盟uhci_hcd
qpbLinux联盟ohci_hcd
qpbLinux联盟usb-storage
qpbLinux联盟qpbLinux联盟uhci_hcd和ohci_hcd是usb1.1的驱动
qpbLinux联盟ehci_hcd是usb2.0的驱动
qpbLinux联盟如果使用的机器都是支持usb2.0的,那uhci和ohci可以不加载
qpbLinux联盟注意这里xxx_hcd都是下划线,不要搞错了,我搞了几回都不对就是这个原因。血泪教训阿。不会用vi的话,看看help,基本的还是很容易的,不过进入了vi,键盘的方向键就失去了作用了,hljk分别就是左右上下了,有点别扭,对于我这种用惯了emacs的,实在是折磨。
qpbLinux联盟qpbLinux联盟2 修改模块加载等待时间,让usb驱动模块有足够的时间加载完然后进入系统,否则会出现错误。
qpbLinux联盟vi /etc/mkinitrd/mkinitrd.conf
qpbLinux联盟找到DELAY=0的那行,改为DELAY=10,反正10以上就可以了,10以下据说有问题,我没试过,你有兴趣就试试。
qpbLinux联盟qpbLinux联盟3编译新启动镜像
qpbLinux联盟qpbLinux联盟mount -tproc none /proc
qpbLinux联盟不知道这是干嘛的,反正没有这个命令后面也会告诉你的
qpbLinux联盟mkinitrd -o /boot/initrd.img-<kernel version>-usb <kernel version>
qpbLinux联盟就会根据你的配置生成新的镜像,以后拿这个启动就可以了
qpbLinux联盟如果不知道kerenl version的话ls /lib/modules看看
qpbLinux联盟qpbLinux联盟4更新grub配置
qpbLinux联盟vi /boot/grub/menu.lst
qpbLinux联盟qpbLinux联盟修改默认配置,改成这个样子:
qpbLinux联盟qpbLinux联盟title Ubuntu, kernel 2.6.10-5-386-usb
qpbLinux联盟root (hd0,0)
qpbLinux联盟kernel /boot/vmlinuz-2.6.10-5-386 root=/dev/sda1 ro quiet splash
qpbLinux联盟initrd /boot/initrd.img-2.6.10-5-386-usb
qpbLinux联盟savedefault
qpbLinux联盟boot
qpbLinux联盟qpbLinux联盟hd0是第一个硬盘,刚启动的时候好像是不管ide硬盘的,默认起来usb就是第一个硬盘,因为usb启动嘛,可能主板不一样,会有些差异,我看的别人的帖子是hd1,到了我这儿就不行了 0是第一个分区,对应后面的sda1
qpbLinux联盟qpbLinux联盟保存后重新启动,然后设置bios启动顺序,以usb为第一个启动,保存配置后启动,从usb进去,出现grub界面,选刚才修改的entry进入,呵呵,等上1分钟,就可以进入系统了。
qpbLinux联盟qpbLinux联盟如果发现不成功,重复检查一下上述步骤是否正确。
qpbLinux联盟qpbLinux联盟usb falsh disc我没试过,估计也差不多。
qpbLinux联盟对于fedora core,mkinitrd的命令有些不同,过程更简单一点,不用修改配置文件,安装完系统后,用rescue模式进入,挂载usb硬盘后:
qpbLinux联盟mkinitrd --preload=ehci_hcd --preload=usb-storage --preload=scsi_mode --preload=sd_mode /boot/initrd-usb.gz 2.6.11-1.1369-FC4
qpbLinux联盟然后修改grub就可以了,fedora core的我没有试过,有危险不保证哦
qpbLinux联盟qpbLinux联盟装完Ubuntu,用了一下,硬件驱动很全,起来简单配置一下显卡和无线网卡就可以用了,想当年我在FC4下配个无线浪费了多少青春。显卡估计用的是xorg的vesa,一般的2d驱动可以了,opengl估计还是不行,先放着吧。
qpbLinux联盟qpbLinux联盟然后就是apt-get 狂下载软件了,后面就有的忙了,还是FC省事,安装的时候全部装上了,以后就不麻烦了。
qpbLinux联盟qpbLinux联盟对比起来,Ubuntu适合新手,很多东西默认就安装好了,一般应用足可以了,FC更适合有经验的,很多新的软件很快就会有rpm包,deb的比较少,Enlightenment DR17 yum库的是10月1号的,apt库是9.15号,落后一大截。