ºìÁªLinuxÃÅ»§
Linux°ïÖú

½«gentooµÄLiveCD°²×°µ½Ó²ÅÌ

·¢²¼Ê±¼ä:2008-03-22 10:49:30À´Ô´:ºìÁª×÷Õß:Alsdwdz
Ê×ÏÈÓÃLiveCDÆô¶¯£¬ÊäÈëgentoo nox À´Æô¶¯µ½×Ö·û½çÃæ¡£

1¡¢¸ñʽ»¯²¢×¼±¸·ÖÇø£¨¼¤»îswap£©£º
ÐèÒªÓõ½µÄ¼¸¸öÃüÁmke2fs,mke2fs -j,mkswap,swapon.

2¡¢¹ÒÔØ·ÖÇø£º
ÃüÁmkdir,mount
/boot ¹ÒÔØµ½/mnt/gentoo/boot
/ ¹ÒÔØµ½/mnt/gentoo

3¡¢½«Îļþ¸´ÖƵ½ÏµÍ³£º
cp -af /mnt/livecd/* /mnt/gentoo/
(Èç¹ûûÓÐ×Ô¶¯¹ÒÔØ£¬¿ÉÒÔÓÃÏÂÃæµÄÃüÁî×Ô¼º¹ÒÔØ)
mkdir /mnt/livecd
mount -o loop /mnt/cdrom/livecd.squashfs /mnt/livecd

4¡¢ÐÞ¸ÄһЩÉèÖãº
cd /mnt/gentoo/boot
ln -s kernel-genkernel-x86-2.6.15-gentoo-r5 vmlinuz
ln -s System.map-genkernel-x86-2.6.15-gentoo-r5 System.map
ln -s initramfs-genkernel-x86-2.6.15-gentoo-r5 initrd.img
cd /mnt/gentoo/etc
rm localtime
ln -s ../usr/share/zoneinfo/PRC localtime
rm /mnt/gentoo/etc/runlevels/default/pwgen #·Àֹϵͳÿ´ÎÆô¶¯ºó×Ô¶¯ÐÞ¸ÄrootÃÜÂ룬Ôì³ÉÎÞ·¨µÇ¼

5¡¢¸ù¾Ý×Ô¼º»úÆ÷µÄÇé¿öÐÞ¸Ä/mnt/gentoo/etc/make.conf

6¡¢ÐÞ¸Ä/mnt/gentoo/etc/fstab

7¡¢ÐÞ¸Ä/mnt/gentoo/etc/conf.d/clock£¬ÉèÖÃCLOCK=¡±local¡±

8¡¢ÐÞ¸Ä/mnt/gentoo/etc/conf.d/hdparm

9¡¢ÐÞ¸Ä/mnt/gentoo/etc/conf.d/hostname

10¡¢ÐÞ¸Ä/mnt/gentoo/boot/grub/grub.conf

11¡¢½«grub°²×°µ½MBR

#grub-install -root-directory=/mnt/gentoo -no-floppy hd0

12¡¢ÐÞ¸Ä/mnt/gentoo/etc/shadow£¬½«rootºóÃæÁ½¸ö¡°:¡±Ö®¼äµÄ¡°*¡±ºÅÈ¥µô£¬È»ºóreboot¡£

13¡¢ÖØÆôºóÓÃrootµÇ¼£¬ÓÃpasswdÉèÖÃÃÜÂë¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. Alsdwdz ÓÚ 2008-03-22 10:50:00·¢±í:

    ÁíÍâÒ»¸öÓÐÒâ˼µÄÌù×Ó£º

    how to hack gentoo livecd

    ÏÂÎ绨Á˰ë¸ö¶àСʱhackÁËÒ»°Ñgentoo livecd 2006.1£¬¸øÒ»¸öÏîÄ¿²Ã¼õºÃµÄlinuxÏµÍ³ÖÆ×÷°²×°¹âÅÌ£¬Ê¡Á˲»ÉÙʱ¼ä£¬gentooµÄlivecdÀï¹Ø¼üµÄ¾ÍÁ½¸öÎļþ£º image.squashfsºÍisolinux/gentoo.igz£¬Ç°Õß»ù±¾ÉϾÍÊÇÒ»¸öÍêÕûµÄgentoo base system£¬ºóÕßÊÇÒ»¸öinitramfs£¬ÁÙʱµÄ¸ùÎļþϵͳ£¬ÓÃÓÚ¼ÓÔØ¹âÅ̲¢ÈÃǰÕßÕýÈ·µØ½Ó¹Üϵͳ£¬ÏÂÃæ¿ªÊ¼ËµÕýÌâ°É¡£

    1¡¢¹ÒÔØ¹âÅÌÎļþmount -o loop /data/soft/livecd/livecd.iso /mnt/cdrom£¬/mnt/cdromÏÂÏÖÔÚ¾ÍÊÇlivecd¹âÅ̵ÄÍêÕûÄÚÈÝ¡£ÁíÍ⽨Á¢Ò»¸öĿ¼/mnt/mycd°Ñ¹âÅÌÀïµÄÎļþÈ«²¿¸´ÖƹýÀ´ÓÃÓÚÖÆ×÷¹âÅÌ¡£

    2¡¢¹ÒÔØimage.squashfs£ºmount -o loop /mnt/cdrom/image.squashfs /mnt/gentoo(ÐèÒªÄãµÄÄÚºËÖ§³ÖsquashfsÎļþϵͳ)£¬È«²¿¸´ÖƵ½ÁíÒ»¸öĿ¼½øÐÐhack°É£¬¸´ÖƵÄʱºò¼ÇµÃ¼ÓÉÏ-pr²ÎÊý¡£Õâ¸öÊÇÖØÍ·Ï·£¬½øÈ¥ºÃºÃÑо¿Ñо¿£¬·ÅÊÖÈ¥ÐÞ¸ÄÅäÖÃÌí¼Ó¶«Î÷°É£¬ÄãÉõÖÁ¿ÉÒÔ°ÑÄãµÄ¿ª·¢»·¾³¡¢portageµÈµÈÈ«¸ã½øÈ¥¡£¸ãºÃÁËÖ±½Ómksquashfs * /mnt/mycd/image.squashfs¾Í¿ÉÒÔÁË£¬²»¹ýÔÚmksquashfs֮ǰÄãµÃ°ÑÔ­Îļþɾµô¡£

    3¡¢¸´ÖÆisolinux/gentoo.igzµ½ÄãÁíÍâÒ»¸öĿ¼£¬mv gentoo.igz gentoo.gz && gunzip gentoo.gz£¬È»ºóÕýÈ·µØ½âѹgentooÎļþ£¬µÃµ½Ò»¸ö¼òµ¥µÄÁÙʱÓøùÎļþϵͳ£¬ÏÂÃæÕâ¸ö½Å±¾¿ÉÒԺܷ½±ãµØ½øÐнâѹ£¬ÓÃÏÂÃæµÄ½Å±¾. /unigz.sh gentoo¾ÍÉú³ÉÁËgentoo.dirĿ¼£¬Ö´Ðнű¾Ö®Ç°È·ÈÏÒ»ÏÂÄãµÄϵͳÀïÓÐûÓа²×°File-Slurp°ü£º

    #!/usr/bin/perl -w
    #

    use strict;

    use File::Slurp qw(slurp);

    my $ifile = slurp($ARGV[0], binmode=> ¡®:raw¡¯);
    my $newfile;
    my $i=1;
    my @newfiles = split(/TRAILER!!!/,$ifile);
    `mkdir $ARGV[0].dir`;

    foreach $newfile (@newfiles)
    {
    open F, ¡°> ./$ARGV[0].dir/$i¡±;
    print F $newfile;
    print F ¡°TRAILER!!!\0¡å;
    close F;
    `cd $ARGV[0].dir; cpio -i -H newc < $i; rm $i; cd ..`;
    $i++;
    }
    ½øÈëgentoo.dirĿ¼Ö÷Òª¿´¿´initºÍetcÏÂÁ½¸ö½Å±¾Îļþinitrd.defaultsºÍinitrd.scripts£¬¼ÓÉÏ×Ô¼ºÏëÒªÖ´ÐеĶ«Î÷¼´¿É£¬µ±È»Èç¹ûÄãÏë´óµ¶À«¸«µØhackÒ²¿ÉÒÔ£¬ÍêÁËÖ®ºóÔÚgentoo.dirĿ¼ÏÂÖ´ÐÐfind . -print | cpio --quiet -o -H newc | gzip -9 > ../gentoo.igz¡£

    4¡¢Ò»ÇоÍÐ÷Ö®ºóÖÆ×÷isoÎļþ£º
    cd /mnt/mycd
    mkisofs -v -R -J -P ¡°cd¡± -p ¡°cd¡± -V ¡°xxx_installer¡± -A ¡°xxx-install-cd¡± -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /data/download/etc.iso .


    ÔÙתһ¸ö ubuntu LiveCD DIYµÄÌù×Ó£¬ºÜÓÐÆô·¢ÐÔ

    ¶þʮһÊÀ¼Íµ½ÁË£¬Ã¿¸öÈ˶¼Ç¿µ÷×Ô¼ºµÄ¸öÐÔ£¬ÓÚÊÇÒ»ÖÖ½Ð×öDIYµÄ¶«Î÷ÇÄÈ»ÐËÆð¡£

    ¡¡¡¡²Ù×÷ϵͳ×÷ΪȫÈËÀàÖǻ۵Ľᾧ£¬×ÔÈ»DIYÆðÀ´ÄѶȼ«´ó£¬Òò¶øDIY³öÒ»¸ö²Ù×÷ϵͳ³É¾Í¸Ð¾ø¶Ô±ÈÂòÒ˼ҵĶ«Î÷µÄ³É¾Í¸Ð´ó¡£

    ¡¡¡¡ÎªÁ˲»ÖÁÓÚ´ÓÍ·¿ªÊ¼±àдһ¸ö²Ù×÷ϵͳ£¬ÎÒÃǵ±È»°Ñ²ÉÓÃÏֳɵIJÙ×÷ϵͳ×÷Ϊһ¸öµ×Ïß¡£

    ¡¡¡¡µ±È»£¬ÎÒÃÇ¿ÉÒÔͨ¹ýLFSÈÃÎÒÃÇˬµ½µ×£¬µ«ÊÇ£¬Äܹ»×öµ½LFSµÄÈË¿ÉÕæµÄÊÇ·ïë÷ë½Ç¡£¶øÇÒ¸üÖØÒªµÄÊÇLFS¼òÖ±ÔÚÌôÕ½ÎÒµÄÈÌÄͳ̶ȡ£

    ¡¡¡¡ÎÒµÄÕâÆªÎÄÕ£¬½Ì´ó¼ÒÈçºÎDIYÒ»¸ö×Ô¼ºµÄubuntu·¢Ðа档Ôڷdz£½Úʡʱ¼äµÄÇé¿öÏ£¬´ïµ½Ë£¿áµÄÄ¿µÄ¡£

    ¡¡¡¡¾ÍºÃ±ÈLFSÒ»Ñù£¬ÎÒÃÇÐèÒªÒ»¸ö´´×÷»ùµØ¡£ÎÒÃÇÊ×ÏȽ¨Á¢Ò»¸ö±äÁ¿¡£½¨Á¢Õâ¸ö±äÁ¿µÄºÃ´¦ºÜÃ÷ÏÔ£¬¼´Ê¹Äã²»ÓÃ~/diy_ubuntuÕâ¸öĿ¼£¬Ò»Ñù¿ÉÒÔÕÕ×ÅÕâ¸öÎÄÕ¼ÌÐø×öÏÂÈ¥¡£

    ¡¡¡¡$ export WORK=~/diy_ubuntu

    ¡¡¡¡$ mkdir -p $WORK

    ¡¡¡¡È»ºóÎÒÃǰѹâÅ̾µÏñÎļþ¹Òµ½/mnt

    ¡¡¡¡$ sudo mount -t iso9660 -o loop dapper-live-i386.iso /mnt

    ¡¡¡¡$ cd $WORK

    ¡¡¡¡¸´ÖÆÎļþ¹âÅÌÎļþ

    ¡¡¡¡$ mkdir ubuntu-livecd

    ¡¡¡¡$ cp -a /mnt/. ubuntu-livecd

    ¡¡¡¡$ chmod -R u+w ubuntu-livecd

    ¡¡¡¡$ sudo umount /mnt

    ¡¡¡¡ÓÉÓÚ¹âÅÌÖаüº¬Á˺ܶàwindowsÏÂÃæµÄ×ÔÓÉÈí¼þ£¬ÎÒÃÇÀ´°Ñ²»±ØÒªµÄÎļþɾ³ý¡£µ±È»Äã¿ÉÒÔ±£Áô¡£

    ¡¡¡¡$ rm -rf $WORK/ubuntu-livecd/programs

    ¡¡¡¡°Ñ¹âÅÌÖеÄѹËõÎļþ¹ÒÆðÀ´£¬Õâ¸öÑù×ÓÒÔºóÄã¿ÉÒÔÔÚ$WORK/oldĿ¼Öп´µ½Ò»¸öÍêÕûµÄlinux²Ù×÷ϵͳµÄĿ¼¡£

    ¡¡¡¡$ mkdir $WORK/old

    ¡¡¡¡$ sudo mount -t squashfs -o loop,ro $WORK/ubuntu-livecd/casper/filesystem.squashfs $WORK/old

    ¡¡¡¡ÎÒÃǽ¨Á¢Ò»¸ö2GB´óСµÄÎļþϵͳ,È»ºó°ÑÕâ¸öÎļþµ±×÷Ò»¸öÉ豸Îļþ¸ñʽ»¯£¬½á¹ûϵͳ¸ø³öÁËÒ»¸ö¾¯¸æ£¬±ðÀí»áËü£¬Ñ¡ÔñÊǾÍÊÇ¡£

    ¡¡¡¡$ sudo dd if=/dev/zero of=$WORK/ubuntu-fs.ext2 bs=1M count=2147

    ¡¡¡¡$ sudo mke2fs $WORK/ubuntu-fs.ext2

    ¡¡¡¡È»ºóÎÒÃǰÑÕâ¸ö¿ÕÎļþϵͳ¹ÒÆðÀ´¡£

    ¡¡¡¡$ mkdir $WORK/new

    ¡¡¡¡$ sudo mount -o loop $WORK/ubuntu-fs.ext2 $WORK/new

    ¡¡¡¡¸´ÖÆlinux²Ù×÷ϵͳµÄÎļþ.ÓÉÓÚÎÒÃÇÊÂÏȵõ½µÄlinuxÊÇѹËõµÄ£¬ËùÒÔÎÒÃǰÑËü½âѹÁË¡£

    ¡¡¡¡$ sudo cp -a $WORK/old/. $WORK/new

    ¡¡¡¡µ±È»ÏÖÔÚ$WORK/old¾ÍûÓÐÓô¦ÁË¡£·ÏµôËü

    ¡¡¡¡$ sudo umount $WORK/old

    ¡¡¡¡ÎÒÃÇÊ×ÏȽøÈë¸Õ²ÅµÃµ½µÄÄǸö²Ù×÷ϵͳ

    ¡¡¡¡$ sudo cp /etc/resolv.conf $WORK/new/etc/

    ¡¡¡¡$ sudo mount -t proc -o bind /proc $WORK/new/proc

    ¡¡¡¡$ sudo chroot $WORK/new /bin/bash

    ¡¡¡¡ÏÖÔÚÄã¾Í½øÈëϵͳÁË£¬¸ßº°linux for human beings£¬´óÁ¶ubuntu£¬Ïë¸Éʲô¾Í¸Éʲô¡£

    ¡¡¡¡# vi /etc/apt/sources.list #Ñ¡ÔñÊʺÏÄãµÄÔ´

    ¡¡¡¡# apt-get update

    ¡¡¡¡# apt-get dist-upgrade

    ¡¡¡¡# apt-get install ÄãÏë×°µÄÈí¼þ

    ¡¡¡¡# apt-get clean

    ¡¡¡¡¡­. #¸ü¶àµÄÅäÖÃ

    ¡¡¡¡×îºóÀ뿪ÄãµÄÄǸö²Ù×÷ϵͳ

    ¡¡¡¡# exit

    ¡¡¡¡$ sudo umount $WORK/new/proc

    ¡¡¡¡$ sudo rm $WORK/new/etc/resolv.conf

    ¡¡¡¡ÏÖÔÚÄãÒѾ­»Øµ½ÁËÄãµÄ³õʼ״̬ÖÐ

    ¡¡¡¡°ÑmanifestÖØÐÂÕûÒ»±é

    ¡¡¡¡$ sudo chroot $WORK/new dpkg-query -W -showformat=¡¯${Package} ${Version}\n¡¯ > $WORK/ubuntu-livecd/casper/filesystem.manifest

    ¡¡¡¡È»ºó×öһϡ°´ÅÅÌÇåÀí¡±

    ¡¡¡¡$ sudo dd if=/dev/zero of=$WORK/new/dummyfile

    ¡¡¡¡$ sudo rm $WORK/new/dummyfile
    ÖØÐÂѹËõϵͳ

    ¡¡¡¡$ sudo rm $WORK/ubuntu-livecd/casper/filesystem.squashfs

    ¡¡¡¡$ cd $WORK/new

    ¡¡¡¡$ sudo mksquashfs . $WORK/ubuntu-livecd/casper/filesystem.squashfs

    ¡¡¡¡ÄãµÄ¸Ä¶¯¶¼±£´æÁË¡£ÏÖÔÚ°Ñ$WORK/new·Ïµô

    ¡¡¡¡$ cd $WORK

    ¡¡¡¡$ sudo umount $WORK/new

    ¡¡¡¡°ÑÎļþµÄmd5ÖØÐÂËãÒ»ÏÂ

    ¡¡¡¡$ cd $WORK/ubuntu-livecd

    ¡¡¡¡$ sudo find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt

    ¡¡¡¡½¨Á¢¹âÅ̾µÏñ£¬ÃüÁîºÜ³¤£¬ÈÌÊÜ×ŵ㡣

    ¡¡¡¡$ cd $WORK

    ¡¡¡¡$ sudo mkisofs -o ubuntu-new.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V ¡°My Cool Ubuntu Live CD¡± -cache-inodes -J -l ubuntu-livecd

    ¡¡¡¡È»ºóÄã¾Í¿ÉÒÔÓÃiso°Ñ¹âÅÌÉÕÁË¡£