本文适合如下读者:
1、有两块硬盘;
2、两块硬盘分别装XP和Ubuntu
3、安装后互不影响(即可以分别安装和卸载)
先说偶的机器配置:
IBM T43 2G RAM 120G+40G HD
昨天下午去华强北买了个IBM光驱位硬盘盒,把升级后剩下的40G硬盘装下。
进BIOS,发现都能识别。
原来的120G硬盘上已经安装了XP,并下载了ISO文件
按照gnix_oag兄提供的--长期提供从硬盘启动Desktop ISO的引导文件:
http://www.linuxidc.com/Linux/2008-01/10834p2.htm
下载了引导文件,并做好配置,从硬盘安装了ISO文件。
关键点1:
在安装最后一步时,有一个ADVANCE选项,选择,并把GRUB安装到HD(1)
这步很关键,目的是不让GRUB改主盘上的MBR
关键点2:
安装后,由于gnix_oag 提供的MENU。LST默认是直接指向他提供的内核文件,而不能指到刚刚安装的Ubuntu 内核,所以需要修改。
重新进入Ubuntu安装选项,相当于用live CD启动
在终端下输入:
sudo gedit
分别打开位于120G硬盘中和40G硬盘中的/boot/grub 下的 menu.lst
可以看到/boot/grub 下的 menu.lst有对刚装好内核引导选项:
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=0a74e191-64db-42e1-ab05-bdd1742f8c2f ro quiet splash
initrd /boot/initrd.img-2.6.22-14-generic
quiet
title Ubuntu 7.10, kernel 2.6.22-14-generic (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=0a74e191-64db-42e1-ab05-bdd1742f8c2f ro single
initrd /boot/initrd.img-2.6.22-14-generic
title Ubuntu 7.10, memtest86+
root (hd1,0)
kernel /boot/memtest86+.bin
quiet
把这部分拷出来,复制到120G硬盘中的menu.lst,例如:
timeout 5
find –set-root /boot/grub/fonts.chs
splashimage /boot/grub/bj2008.xpm.gz
fontfile /boot/grub/fonts.chs
default 0
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=0a74e191-64db-42e1-ab05-bdd1742f8c2f ro quiet splash
initrd /boot/initrd.img-2.6.22-14-generic
quiet
title Ubuntu 7.10
find –set-root /boot/grub/fonts.chs
kernel /boot/gutsy/vmlinuz boot=gnix_oag ramdisk_size=1048576 root=/dev/ram rw quiet splash debian-installer/locale=zh_CN fd_dir=gutsy
initrd /boot/gutsy/initrd.gz
title 一键还原
find –set-root /boot/grub/fonts.chs
kernel /boot/grub/mem_disk.gz c=120 h=2 s=36 floppy
initrd /boot/grub/ghost_1.gz c=120 h=2 s=36 floppy
title 启动 DOS
find –set-root /boot/grub/fonts.chs
kernel /boot/grub/mem_disk.gz c=64 h=8 s=36 floppy
initrd /boot/grub/dos98.gz c=64 h=8 s=36 floppy
title 返回上级
rootnoverify (hd0,0)
makeactive
chainloader +1
(请不要直接复制这个,因为硬盘的UUID是不一样的,即这个
root=UUID=0a74e191-64db-42e1-ab05-bdd1742f8c2f
是不一样的)
这样,启动后进入c:\grldr=” Ubuntu Linux “选项后(这个是WIN下的 BOOT。INI里我们自己加的),就可以看到多了个选项:
title Ubuntu 7.10, kernel 2.6.22-14-generic
直接选择,就可以进入装到第二个硬盘上的Ubuntu了。
优点:
1、相互独立,互不影响。2个盘都可以随时重新安装系统,Ubuntu安装完后按照上述方法就可以使用
2、第二个硬盘可以随时拔掉,只要不选Ubuntu 7.10, kernel 2.6.22-14-generic就可以
缺点:
只针对偶的T43,40G硬盘与光驱不能同时用了。
长期提供从硬盘启动Desktop ISO的引导文件
代码:
一、仅从硬盘启动Destdop ISO 并安装:
1、从后面的链接下载相关引导文件并解压;
2、在任意盘的根目录中新建一个文件夹,并重命名(如feisty、edgy等,menu.lst中用fd_dir变量把要找的文件夹传给系统)
把下载的桌面版光盘(*.iso)文件放到此目录中,不要解压;
例如*.iso 放在 X:\feisty ,则 menu.lst文件中的参数应为 fd_dir=feisty
3、把解压后的 boot 文件夹、grldr、menu.lst文件移到 C:\,
在 c:\boot.ini 文件后面添加 c:\grldr=” Ubuntu Linux ”
把 timeout=0 改成 timeout=3
(可参照 boot.ini.txt 文件)(如不行的话,请学习grub for dos来修改menu.lst配置文件,这也是必备知识 )
4、启动后,先 sudo umount -a 取消已挂载好的分区,再按桌面的安装程序进行安装。
二、免安装直接使用:
在以上基础用下列方法可直接使用,
1、用ubuntu.fs文件来保存数据:
对于MS用户没有linux分区, 可用ubuntu.fs文件代替Linux分区,方法如下,
从下载包的 “ubuntu.fs” 文件夹中选一个压缩的 ext2 分区映象,
解压到要找的文件夹中(即与*.iso放在同一文件夹中即可),并重命名为 ubuntu.fs (所有新加的数据在这里),
启动后,/hd_rw中有ubuntu.fs 就表示成功;
2、用ubuntu.fs 文件夹来保存数据:
对于已用linux分区的用户,可把数据保存在一个文件夹中,
这个文件夹要在所要找的文件夹中(即与*.iso放在同一文件夹中即可),并重命名为 ubuntu.fs
启动后,/hd_rw中有ubuntu.fs 就表示成功;
3、用swap.fs文件来虚拟内存
从 “swap.fs” 中选一个压缩的swap.fs映象
解压到任意盘根目录或要找的文件夹中(即与*.iso放在同一文件夹中即可),并重命名为 swap.fs
启动后,用 swapon -s 检查是否正在使用
三、使用符加的软件包,简化程序的安装:
1、下载安装好的软件符加包*.rofs,(一般在有中文包与常用软件包)
2、把它放入要找的文件夹中,(即与*.iso放在同一文件夹中即可)。
四、在U盘或移动硬盘上使用
本引导包完全可在U盘或移动硬盘上使用,只要把引导程序安装好就行了(grub for dos )
1、安装grub for dos 引导程序:
下载 http://ftp.ubuntu.org.cn/home/gnix_oag/bootlace.com
chmod +x ./bootlace.com
sudo ./bootlace –floppy /dev/sda1 (u盘)
2、再把 grub 相关文件(/boot /menu /grldr) 及iso文件(按前面的方法)放到u盘上
3、在别人机子上使用时,可删除/etc/gnix.oag*文件,或用新的文件来保存数据,这样启动时就能自动配置系统与驱动。或加入 ptptptptpt 的显卡配置脚本,就更方便。
下载地址 http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/
下载用户名与密码 http://forum.ubuntu.org.cn/viewtopic.php?t=9685
当前用户名:ubuntu
当前密码:ubuntuftp
Ubuntu feisty 7.10 :
http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/gutsy/bhd_i386_2.6.22-14g-ntfs.tar.gz
Ubuntu feisty 7.04 :
引导包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/feisty/bhd_i386_2.6.20-15g-ntfs-aufs.tar.gz
对应光盘: http://releases.ubuntu.com/feisty/ubuntu-7.04-desktop-i386.iso
中文包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/feisty/rofs/02base_zh.rofs (52M) 2007-7-9更新
光盘中没有安装中文,把此中文包放入*.iso相同的文件夹即可
常用软件包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/feisty/rofs/03_soft.rofs (140M)
http://www.linux-wiki.cn/archieve/bhd_i386_2.6.20-15g-ntfs-aufs.tar.gz
Ubuntu egdy 6.10 : ubuntu kubuntu xubuntu 等内核相同,均可通用,只是引导界面不同
引导包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/edgy/6.10/bhd_i386_2.6.17-10g.tar.gz
对应光盘: http://releases.ubuntu.com/edgy/ubuntu-6.10-desktop-i386.iso
xubuntu引导包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/edgy/xubuntu/bhd_i386_2.6.17-10g.tar.gz
对应光盘: http://cdimage.ubuntu.com/xubuntu/releases/6.10/release/xubuntu-6.10-desktop-i386.iso
amd64 引导包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/edgy/6.10/bhd_amd64_2.6.17-10g.tar.gz (未试)
Ubuntu dapper 6.06.1
引导包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/dapper/6.06.1/boot_from_hd.i386.tar.gz
对应光盘: http://releases.ubuntu.com/dapper/ubuntu-6.06.1-desktop-i386.iso
hiweed-desktop_1.0final
引导包: http://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/hiweed/desktop_1.0final/boot_from_hd.i386.tar.gz
对应光盘: http://mirror.vmmatrix.net/hiweed/desktop/hiweed-desktop_1.0final.iso
Ubuntu、kubuntu、xubuntu 等同版本的 Destop CD 都使用相同的内核。
你可以用 uname -a 可查看看你当前所使用的内核版本。
内核不可能集成很多的驱动与模块,这些一般放在硬盘或live CD 上,
启动时当需要什么模块时就会从硬盘或live CD上装入,
所以只要引导的内核版本与Live CD上的模块版本相同就能正常引导。
由此,本引导程序可以引导同版本的Live CD ,如 ubuntu kubuntu xubuntu 或其它基于ubuntu的 Live CD
可本引导程序的引导界面是ubuntu的,有人觉的不爽,可按以下方法修改:
引导图一般在 /usr/lib/usplash/ 中,我们要做的就是用 /usr/lib/usplash/中的图替代 initrd.gz 中的图,
很简单:
解压:
代码:
gunzip initrd.gz
mkdir tmp
cd tmp
cpio -i -F ../initrd
替换图、或用/usr/lib/usplash/ 中的其它图:
代码:
cp -L /usr/lib/usplash/usplash-artwork.so usr/lib/usplash/usplash-artwork.so
再打包即可:
代码:
find . |cpio -o -H newc |gzip -9 >../initrd.gz
引导图也可参照这个来重新做: http://wiki.ubuntu.org.cn/USplashCustomizationHowto
代码:
制作*.rofs法一
制定 LiveCD 可参照这个来做:https://help.Ubuntu.com/community/LiveCDCustomization
我们要做的 *.rofs 则是要把增加的内容或修改的内容分离出来,
所以可以用 unionfs 或 aufs 文件系统把制定的内容分离出来,
但unionfs与aufs好象不能嵌套使用,所以在 Live CD 环境下不能用此法,
1、安装squashfs-tools(用来压缩)
sudo apt-get install squashfs-tools
sudo modprobe squashfs
2、挂载 Live CD 文件系统
sudo mount -o loop ubuntu-*.iso /cdrom
mkdir ~/livecd
sudo mount -t squashfs -o loop /cdrom/casper/filesystem.squashfs ~/livecd
3、使用unoinfs文件系统
mkdir ~/rwfs
mkdir ~/edit
sudo mount -t unionfs -o dirs=~/rwfs=rw:~/livecd=ro none ~/edit
4、进入edit中
sudo cp /etc/resolv.conf ~/edit/etc/
sudo cp /etc/hosts ~/edit/etc/
sudo chroot ~/edit
mount -t proc none /proc
mount -t sysfs none /sys
export HOME=/root
export LC_ALL=C
5、添加软件,进行设置等:
6、打包:
rm -rf /tmp/*
rm /etc/reumount /proc
umount /syssolv.conf
umount /sys
exit
sudo mksquashfs rwfs *.rofs
aufs 就是另一个联合文件系统,可用来替代 unionfs ,(unionfs 有 bug,不好用)
它的作用就是把多个文件系统或者说是文件夹联合起来,变成一个文件系统。
所有的Live CD要正常使用,都要用到这样的文件系统,因为Live CD 是只读的,而运行系统则要写入的。
一般Live CD启动时,会从内存中取出一部分做成虚拟磁盘,与 Live CD 联合起来,这样就把运行中的数据写入在虚拟磁盘中了,
当然也可以用一个分区,或其它文件夹来联合起来,这就是Live CD能保存数据的原理。
aufs 比较成熟,很多Live CD 已经在用它。
制作*.rofs法二 (feisty中文包就是这样做出来的,呵呵)
1、先用本引导程序启动,用ubuntu.fs文件保存配置,(选用256mb就可以了)
启动后,设置网络及下载的软件源,更新软件包列表。
2、接下来就要安装或制定程序,为了把安装的程序与个人或硬件信息分开,则必须要用新的ubuntu.fs文件来保存数据。
重启到XP或可操作的系统中,把 ubuntu.fs 重命名为 01.rofs
再解压一个新ubuntu.fs文件(可根据安装程序大小来选用ubuntu.fs大小),或在Linux分区上用一个文件夹来保存数据。
3、重启,进入到ubuntu中用新立得安装程序,并设置、配置系统。
为了后面的压缩,请安装 squashfs-tools 软件。
由于是在本live CD中安装的,故你可以看到当前的效果。
清除下载的软件包: sudo apt-get clean
4、制作*.rofs ,
cd /hd_rwfs/ubuntu.fs
mksquashfs etc bin usr opt var … /media/d_win/feisty/02.rofs
在这里要排除 hd_rofs hd_rwfs home root 文件夹,
但不知mksquashfs 的 -e 怎么没有作用,只能用上在的命令做了。
再把原来的 ubuntu.fs 重命名或删去,用新的ubuntu.fs 可做出 03.rofs 04.rofs…….
在wsky586的要求下,重新做了下,修正一个小问题,
就是第二次以后的启动,不能自己挂载相关分区,
gutsy的引导程序做好后,没怎么说明,现在说明下新功能:
就是在硬件变化时,也就是 lspci 变化时,会自动重新配置fstab和显卡驱动
很适合放在U盘上和移动硬盘上,到别人机子上可方便使用。
http://ftp.ubuntu.org.cn/gnix_oag/boot_livecd_from_hd/gutsy/bhd_i386_2.6.22-14g-ntfs1.tar.gz
欢迎大家测试。