|
定制debian安装盘 --就这样简单
http://www.linuxsir.cn/bbs/showthread.php?t=295282
by ccwufu @ linuxsir.cn
请修改 :
0)请修改附件的133、152行:调整你需要的软件包
(基本中文: ttf-arphic-uming fcitx im-switch )
1)如果不要代理的话,请注释掉 #export http_proxy=http://192.168.213.1:5865/
2)请修改到你的快速mirror
debootstrap etch /tmp/cdi/etchbootstrap http://debian.linux.org.tw/debian/
3)下载附件: 另存为: auto_cdi.sh
4) (root ) sh ./auto_cdi.sh
生成的cdi.iso 在 /tmp/cdi/cdi.iso (默认)
#################################
# Notes : It's for the Etch
# Notes : please modify the mirror and the package as you need
# line 133 : package included into customized d-i image
# line 152 : package auto-installed during installation
# Step 0 : install tools needed
apt-get update
apt-get install mkisofs debootstrap unionfs-modules-`uname -r`
# Step 1 : make directory
export workdir=/tmp/cdi
mkdir -p $workdir/{roiso,rwiso,newiso,scripts,bootstrap}
# Step 2 : download the d-i image and make it(iso) writable with unionfs
cd $workdir
#export http_proxy=http://192.168.213.1:5865/
wget http://debian.linux.org.tw/debian-testing-cdimage/daily-builds/etch_d-i/current/i386/iso-cd/debian-testing-i386-netinst.iso
#wget http://debian.linux.org.tw/debian-testing-cdimage/daily-builds/etch_d-i/20070316-1/i386/iso-cd/debian-testing-i386-netinst.iso
#wget ftp://192.168.213.1/debian-testing-i386-netinst.iso
mount -o loop $workdir/debian-testing-i386-netinst.iso $workdir/roiso
mount -t unionfs -o dirs=$workdir/rwiso=rw workdir/roiso/=ro unionfs $workdir/newiso
# Step 3a : download the indices file ( to update the pool)
cd $workdir/scripts/
wget http://debian.linux.org.tw/debian/indices/override.etch.contrib.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.contrib.src.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.extra.contrib.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.extra.main.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.extra.non-free.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.main.debian-installer.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.main.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.main.src.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.non-free.gz
wget http://debian.linux.org.tw/debian/indices/override.etch.non-free.src.gz
gunzip *.gz
#export http_proxy=
# Step 3b : create the configration for the apt-ftparchive
cd $workdir/scripts/
cat >>apt.conf <<EOF
APT {
FTPArchive {
Release {
Origin "Debian";
Label "Debian";
Suite "testing";
Version "4.0";
Codename "etch";
Architectures "i386";
Components "main contrib";
Description "Debian Testing distribution - Not Released";
};
};
};
EOF
cat >>config_binary <<EOF
Dir {
ArchiveDir "$workdir/newiso/";
OverrideDir "$workdir/scripts/";
CacheDir "$workdir/";
};
TreeDefault {
Directory "pool/";
};
BinDirectory "pool/main" {
Packages "dists/etch/main/binary-i386/Packages";
BinOverride "override.etch.main";
ExtraOverride "override.etch.extra.main";
};
BinDirectory "pool/control" {
Packages "dists/etch/contrib/binary-i386/Packages";
BinOverride "override.etch.contrib";
ExtraOverride "override.etch.extra.contrib";
};
Default {
Packages {
Extensions ".deb";
Compress ". gzip";
};
Contents {
Compress "gzip";
};
};
EOF
cat >>config_installer <<EOF
Dir {
ArchiveDir "$workdir/newiso/";
OverrideDir "$workdir/scripts/";
CacheDir "$workdir/";
};
TreeDefault {
Directory "pool/";
};
BinDirectory "pool/main" {
Packages "dists/etch/main/debian-installer/binary-i386/Packages";
BinOverride "override.etch.main";
ExtraOverride "override.etch.extra.main";
};
Default {
Packages {
Extensions ".udeb";
Compress ". gzip"
};
Contents {
Compress "gzip"
};
};
EOF
# Step 4 : build the bootstrap and download the extra package
# move the downloaded deb to the d-i ISO 's pool
cd $workdir
#debootstrap etch $workdir/bootstrap http://debian.linux.org.tw/debian/
debootstrap etch $workdir/bootstrap http://127.0.0.1:9999/debian/
chroot $workdir/bootstrap apt-get update
chroot $workdir/bootstrap apt-get -y install apt-move
chroot $workdir/bootstrap apt-get clean
chroot $workdir/bootstrap apt-get -y install --download-only eject file sudo vim-tiny console-common kbd locales gdm xfce4 desktop-base x-window-system-core xresprobe
chroot $workdir/bootstrap apt-move update
cp -a $workdir/bootstrap/mirrors/debian/pool $workdir/newiso/
chroot $workdir/bootstrap apt-get clean
# Step 5 : update Release file and indices
cd $workdir/newiso
apt-ftparchive -c $workdir/scripts/apt.conf generate $workdir/scripts/config_installer
apt-ftparchive -c $workdir/scripts/apt.conf generate $workdir/scripts/config_binary
apt-ftparchive -c $workdir/scripts/apt.conf release dists/etch > ./dists/etch/Release
# Step 6a : create the preseed.cfg to auto-install the extra packages
cd $workdir/newiso/.disk/
cat >>preseed.cfg <<EOF
# Individual additional packages to install
d-i pkgsel/include string eject file sudo vim-tiny console-common kbd locales gdm xfce4 desktop-base x-window-system-core xresprobe
tasksel tasksel/first multiselect standard, xfce-desktop
EOF
# Step 6b : append the boot parameter to include the preseed.cfg
cd $workdir/newiso/isolinux
#sed isolinux.cfg to append : preseed/file=/cdrom/preseed.cfg
cp isolinux.cfg isolinux.cfg.org
sed -e '15,28s:gz:gz preseed/file=/cdrom/.disk/preseed.cfg:g' isolinux.cfg.org > isolinux.cfg
# Step 7 : create the ISO
cd $workdir
mkisofs -o ./cdi.iso -r -J -l -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./newiso/
# Step 8 : clean
umount $workdir/newiso $workdir/roiso
#mv $workdir/cdi.iso ~
#rm -rf $workdir
###################################### |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|