Ê×ÏÈÓÃ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ÉèÖÃÃÜÂë¡£
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°Ñ¹âÅÌÉÕÁË¡£