LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2379|回复: 17

[原创]Geek Gentoo+BackTrack+DOS+Slax+Puppy on one Ext3 USB Disk

[复制链接]
发表于 2009-6-14 17:04:15 | 显示全部楼层 |阅读模式
原文见我的blog: http://blog.donews.com/6lines/archive/2009/06/14/1519891.aspx 日志里面有几张图片,这儿不贴图还要一张张来,就不贴了。
  前一段时间换了一个大一点的硬盘,然后想在上面装一个linux,结果安装grub后总是提示内核镜像的位置已经超过了BISO的寻址范围(升级BIOS后仍然不行,HP的BIOS好像是自己出的...)。想要在本地硬盘上面安装看来是只能是在windows系统分区后面再分两个分区,不过这么一弄分区麻烦不说,所有软件又要重装一遍了(我的软件一般都放在D盘)。想想还不如在一个U盘上面东西都弄好,既可以用来当急救系统也可以做Ghost,而且用PNY的那个薄片U盘,还可以装钱包里随身带着。
  好了,废话不多说,计划如下:
  1. U盘用PNY 8G的,比较小巧可以随身携带。
  2. U盘格式化为linux ext3类型,不说在fat上面装linux觉得怪异,而且fat格式也不支持linux的链接。
  3. 用extlinux做BootLoader。
  4. Gentoo为这个U盘系统的主要系统,所在直接安装在U盘上,而不是像网上说的那样用光盘版的系统直接拷贝然后用extlinux的changes参数来保存系统变化。
  在开始这前先简单介绍一下安装的这几个系统:Gentoo是一个比较轻巧干净的linux发行版,它使用基于源代码分发方式的portage为包管理系统(当然也有预编译的软件),这意味着你可以完全控制你的系统,要装哪些软件不要装哪些软件,一个软件要装哪些模块,还可以针对自己的系统作出优化。BackTrack是一个在安全界备受推宠的专门用于安全检测审计的linux发行版,它里面包含了无数个专门的安全工具,在无线破解方面尤其擅长。slax和puppy是两个轻量级的linux发行版本,slax 200M左右puppy 100M左右,但都包含一个桌面系统和常用的软件。MaxDos v7.1光盘启动版,集成了ghost 11.5, PQ, DM, Windows密码破解等,最主要的是可以用来ghost备份和恢复我的windows系统。
  好了,现在一步步开始正式安装,以下安装命令为我安装过后凭记忆写出,如果有不妥之处留言或写邮件到DarkThorn@163.com。

一、准备工作
  准备一个网络连接,在安装gentoo及软件的时候我们要用到网络。如果是gentoo新手,然后最好手边有一份gentoo安装手册,在本文中只简单介绍gentoo安装过程。
  然后下载软件(不知道下载地址google之):
  1. 最新版的Gentoo minimal installation CD、Stage Tarball、Portage Snapshot,我用20090602的那个。
  2. 下载光盘版本的BackTrack,我这里用BT4 Beta版。
  3. 下载slax linux和puppy linux,然后各自解压到一文件夹下。
  4. 下载MaxDOS v7.1光盘版。
  5. UltraISO,用来从ISO中提取文件。
  6. GDParam,用来获取磁盘镜像文件的c/h/s参数。
  下载完成后将Gentoo Minimal Installaton CD刻盘。
二:提取DOS镜像
  将下载的maxdos_71plus_iso.rar 解压得到maxdos_71plus_iso.iso,用UltraISO打开镜像文件,提取其中maxdos文件夹下面的maxs.sys文件。将maxs.sys改名为maxs.gz,用winrar打开解压出其中的maxdos.exe文件。最后将解压出的maxdos.exe改名为MaxDOS.img,这就是我们要用的DOS镜像,与上面下载好的软件一起保存好,在安装完gentoo后我们要把他们拷贝到U盘里。
三、安装gentoo
  将U盘与gentoo安装盘插入计算机,从光驱启动。启动完成后将U盘分为一个区格式化ext3类型(请将以下命令中的U盘设备号以你自己系统做相应调整):
  1. 用fdisk命令将U盘所有分区删除,然后重新建立一个新分区,分区大小为全U盘大小:
    #fdisk /dev/sda
    Command (m for help): d
    Partition number (1-?): 1
  在command后面输入p可以查看当前分区状况,一般来说默认U盘只有一个分区,如果有多个分区再重复上面的命令,直到删除完为止。删除完以后新建一个主分区并将其设为可启动:
    Command (m for help): n
    p
    Command (m for help): a
  2. 格式化U盘为ext3:
    #mkfs.ext3 /dev/sda1
  下面可以按手册安装gentoo了,不过要注意的是,如果内存在1G以上我们就不用swap分区了(你也可以在U盘上再划出一个分区做为swap),并且boot分区也不用另分。还有就是我们使用gentoo的genkernel,这样U盘应当可以在不同的机子上使用(当然你也可以拷贝光盘里的内核)。
  3. gentoo基本系统安装:
    dhcpcd eth0
    mount /dev/sda1 /mnt/gentoo
    mkdir /mnt/gentoo/boot
    cd /mnt/gentoo
  (挂载你下载gentoo stage/portage的windows分区,将stage/portage拷贝到当前目录即/mnt/gentoo下)
    tar xvfp stage3-i686-20090602.tar.bz2
    tar xvf portage-latest.tar.bz2 -C usr
    mirrorselect -i -o >> etc/make.conf
    mirrorselect -i -r -o >> etc/make.conf
    cp -L /etc/resolv.conf etc/
    mount -t proc none proc
    mount -o bind /dev dev
    chroot /mnt/gentoo /bin/bash
    env-update
    source /etc/profile
    export PS1="(chroot) $PS1"
    emerge --sync
    (if a new portage version is available)  emerge --oneshot portage
    (if you use vim) emerge vim
    vim /etc/locale.gen
  (add to the file):
      zh_CN GB18030
      zh_CN.UTF-8 UTF-8
      zh_CN.GB2312 GB2312
      zh_CN.GBK GBK
    locale-gen
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    emerge gentoo-source
  注意,下面的命令与手册上的不同,手册上说的默认的内核配置文件的路径应当是错的,正确的应当是下面命令中的那个路径。在执行前先备份:
  (mv /usr/share/genkernel/arch/x86/kernel-config /usr/share/genkernel/arch/x86/kernel-config.bak)
    zcat /proc/config.gz > /usr/share/genkernel/arch/x86/kernel-config
    genkernel all
  将在/boot目录下生成的kernel...与initramfs...名字记下或改个名,我改为vmlinuz和initramfs。
四、完善gentoo基本系统
  在/etc/fstab中将根目录挂载如下,将其它的项注释掉:
    /dev/sda1  / ext3 noatime 0 1
  设置你喜欢的hostname:
    vim /etc/conf.d/hostname
  如果使用dhcp,并且开机要自动启用,将下一行加入/etc/conf.d/net:
    config_eth0=("dhcp")
  并执行:
    rc-update add net.eth0 default
  为系统设置密码:
    passwd
  其它相应的自己设置即可。
五、安装基本软件
  一般来说要安装的软件有syslog-ng, slocate, reiserfsprogs, jfsutils, dhcpcd, ppp等,自己视情况emerge。
六、安装syslinux
    emerge syslinux
  安装完成以后将extlinux安装在目录/extlinux下:
    cd /
    mkdir extlinux
    extlinux -i /extlinux
    cd /usr/share/syslinux
  在syslinux目录或子目录下找到mbr.bin,然后安装mbr:
    cat mbr.bin > /dev/sda
  然后在syslinux目录或子目录下面找到下面五个文件,复制到/extlinux/下:
    memdisk
    vesamenu.c32
    menu.c32
    chain.c32
    reboot.c32
七、安装其它系统
  1. DOS
  回到根目录,在根目录下新建文件夹命名为dos,将我们做好的MaxDOS.img文件放于此目录下。\
    mkdir dos
    cp /mnt/winfs/.../MaxDOS.img /dos/
  2. BackTrack
  挂载我们下载回来的BackTrack的iso:
    mount -o loop /mnt/winfs/.../bt4-beta.iso /mnt/cdrom
  在根目录下新建文件夹/btboot,复制iso/boot/下面的vmlinuz, initrd.gz到/btboot,然后复制整个BT4文件夹到根目录,注意BT4文件夹不能改名字:
    mkdir btboot
    cp /mnt/cdrom/boot/vmlinuz /btboot/
    cp /mnt/cdrom/boot/initrd.gz /btboot/
    cp -pPr /mnt/cdrom/BT4 /
  3. slax
  在根目录下新建文件夹/slaxboot,将slax/boot下的文件vmlinuz, initrd.gz复制到/slaxboot下,然后复制整个slax文件夹到根目录,注意slax文件夹不能改名字:
    mkdir slaxboot
    cp /mnt/winfs/.../slax/boot/vmlinuz /slaxboot/
    cp /mnt/winfs/.../slax/boot/initrd.gz /slaxboot/
    cp -r /mnt/winfs/.../slax/slax /
  4. puppy
  将整个puppy文件夹复制到根目录下,可以将puppy目录下的[boot]文件夹删除:
    cp /mnt/winfs/.../puppy /
    rm -r /puppy/[boot]
八、完成extlinux配置
  在目录/extlinux下新建文件extlinux.conf,其内容如下:

PROMPT 0
TIMEOUT 100
DEFAULT vesamenu.c32
MENU BACKGROUND splash.png

F1 readme.txt
F2 extlinux.conf
MENU WIDTH 80
MENU MARGIN 10
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW -1
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
MENU HELPMSGROW 22
MENU HELPMSGENDROW -1
MENU HIDDENROW -1
MENU HSHIFT 0
MENU VSHIFT 0
MENU COLOR border 0 #0000 #0000 none

MENU TITLE 's Tool Box

LABEL gentoo
    MENU LABEL ^Gentoo Linux
    kernel /boot/vmlinuz
    append initrd=/boot/initramfs ramdisk_size=8192 root=/dev/ram0 real_root=/dev/sda1 vga=0x318 rw
    TEXT HELP
    Gentoo Gen-Kernel 2.6.29...
    ENDTEXT

LABEL bt
    MENU LABEL ^BackTrack 4
    kernel /btboot/vmlinuz
    append initrd=/btboot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw vga=0x318 changes=/BT4/changes/

LABEL slax
    MENU LABEL ^Slax v6.2
    kernel /slaxboot/vmlinuz
    append initrd=/slaxboot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw vga=0x318 changes=/slax/grach/ autoexec=xconf;telinit~4

LABEL slax-txt
    MENU LABEL Slax v6.2 - Text Mode
    kernel /slaxboot/vmlinuz
    append initrd=/slaxboot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw vga=0x317 changes=/slax/txtch/

LABEL puppy
    MENU LABEL ^Puppy Linux v4.2
    kernel /puppy/vmlinuz
    append initrd=/puppy/initrd.gz pmedia=cd

LABEL dos
    MENU LABEL Max^DOS v7.1
    kernel /extlinux/memdisk c=555 h=2 s=18 floppy
    append initrd=/dos/MaxDOS.img

LABEL reboot
    MENU LABEL ^Reboot
    kernel /extlinux/reboot.c32


  其中第四行menu background splash.png表明启动菜单的的背景图片为splash.png(保存于/extlinux下),它应当是一张640*480大小的png, jpg, gif, jmp格式图片。如果不喜欢可以将这一行去掉。
  好了,到这里我们的整个系统就完成了,将所有挂载的系统umount,然后重启,将第一启动方式设置为USB-HDD方式,然后就可以看见可爱的extlinux启动界面了~~~
  这样做出来的系统启动速度比光盘快多了,个人感觉与硬盘启动速度差不了多少,不过不知道以后用着会不会出什么问题。后面是一些我安装完成后的图片,是刚装完后半夜照的不是太清楚,呵呵,拿出来小秀一下,如果有什么问题及指正,请留言或写邮件到DarkThron@163.com,我的Blog: http://blog.donews.com/6lines,欢迎交流。
 楼主| 发表于 2009-6-14 17:06:03 | 显示全部楼层
刚刚注册,大家多指教。
回复 支持 反对

使用道具 举报

发表于 2009-6-14 17:10:20 | 显示全部楼层
技术贴,支持!
回复 支持 反对

使用道具 举报

发表于 2009-6-14 18:24:51 | 显示全部楼层
U盘装gentoo 太也折腾
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-14 19:09:36 | 显示全部楼层
Post by saiddy;1997798
U盘装gentoo 太也折腾
嘿嘿,几个命令而已,打开电视也就一会儿的时间。
回复 支持 反对

使用道具 举报

发表于 2009-6-14 19:12:26 | 显示全部楼层
U盘上的Linux,有必要弄这么多?

在U盘上用Gentoo的意义不大,第一是U盘的性能,第二是U盘的寿命,如果真喜欢Gentoo,可以换成基于Gentoo的SystemRescue。

用你列出的发行版组合,这样四选一就OK了。

1、Dos + BackTrack
2、Dos + SystemRescue
3、Dos + Slax
4、Dos + Puppy

对于Puppy我个人是不太喜欢(主要是因为busybox感觉不太爽,用起来总觉得不像一个完整的发行版)。
回复 支持 反对

使用道具 举报

发表于 2009-6-14 19:19:34 | 显示全部楼层
Post by 狱卒;1997811
U盘上的Linux,有必要弄这么多?

在U盘上用Gentoo的意义不大,第一是U盘的性能,第二是U盘的寿命,如果真喜欢Gentoo,可以换成基于Gentoo的SystemRescue。

用你列出的发行版组合,这样四选一就OK了。

1、Dos + BackTrack
2、Dos + SystemRescue
3、Dos + Slax
4、Dos + Puppy

对于Puppy我个人是不太喜欢(主要是因为busybox感觉不太爽,用起来总觉得不像一个完整的发行版)。


同意。

但关键是systemrcd不支持中文,其他都不错。
回复 支持 反对

使用道具 举报

发表于 2009-6-14 19:33:00 | 显示全部楼层
Post by orez;1997810
嘿嘿,几个命令而已,打开电视也就一会儿的时间。

并非指安装时间而已
我也是楼上的意思

装那么多到底用哪个呢```这也是太折腾之一
回复 支持 反对

使用道具 举报

发表于 2009-6-14 19:53:14 | 显示全部楼层
Gentoo相对复杂,而且需要编译,作为Rescue系统不太方便维护。Slax挺好,但是软件还略显不足。推荐Arch:

[color="Blue"]Archlinux LiveUSB How-to
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-14 20:25:36 | 显示全部楼层
  楼上轻砸,其实装这个无非就是玩玩。
  其实盘上主要就三个系统,Gentoo,BT,DOS 。至于slax和puppy,只过不拷几个文件上去而已,拷上去了就当是随便玩玩,不拷也无所谓。而且pupppy只要启动后就在内存里面运行,启动后可以把U盘直接拨下来。
  本子上装不了gentoo,只能另想办法。再说现在刚开始用gentoo肯定是要把系统搞的乱七八糟,与其在本子上装还不如在U盘上装了随便玩。其它一些版本都是以光盘的方式装在U盘里,要保存改动只能以将改动保存到一个文件夹,觉得不太爽。
  BT么,不是用来作急救系统的~~~嘿嘿~~~,要不装在U盘上那就要刻在光盘上了,浪费资源不说,不能做更改还用不长。
  DOS么,就是用来备份恢复windows...
  至于寿命,装好个系统后就放那儿?还不如玩个一两年直接再换新的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表