[转]ubuntu LiveCD制作 …

Elta提示:拷贝镜像中文件的时候,需要注意有一个隐藏文件夹也要拷贝。本文内容本人已经在kubuntu12.10下实验成功。

最近看到论坛很多朋友抱怨: 每次重装之后,都要重复安装中文支持,配置系统等工作。如果能定制ubuntu的livecd,安装之前把这些工作做了,就可以省下不少时间了。 当然最彻底的方法就是自己做一个ubuntu的livecd,这有法可依但是要解决很多细节问题,不适合新手。 

这可以通过定制ubuntu-livecd的iso来实现,为什么不选alternate,先看它们的区别: 
ubuntu-8.04-alternate-i386.iso VS ubuntu-8.04-livecd-i386.iso 
alternate里面是一大堆的按顺序排列的包,安装时可以选择desktop,server,然后根据选择安装不同的包。 
livecd里面最大的文件是一个文件系统映像,即filesystem.squashfs,其实就是squashfs格式的压缩包。 

下面以 ubuntu-8.04-desktop-i386.iso为例: 

1。 取出iso里面的所有内容 
代码:
sudo mkdir  oldiso    newiso
sudo mount  ubuntu-8.04-desktop-i386.iso  oldiso  -o  loop 
sudo  cp  oldiso/*    newiso/      -rp
sudo  umount  oldiso 

这个时候,newiso里面就是原来iso的全部内容。

2。 解压filesystem.squashfs,它位于newiso/casper/filesystem.squashfs
代码:
sudo unsquashfs newiso/casper/filesystem.squashfs

耐心等待,解压出来是一个squashfs-root目录,大小约是原来的3倍左右,新安装的系统是不是差不多是这个大小呢?

3。开始定制系统
代码:
sudo cp /etc/resolv.conf    squashfs-root/etc   
sudo  chroot  squashfs-root     

默认的shell可能是sh,输入/bin/bash 就可以了, 这时候可以像在正常系统一样,用apt-get等命令,当然没有图形界面。
有些程序需要proc,所以这里先挂载上。
代码:
mount none  /proc    -t proc

代码:
  apt-get  update   
sudo apt-get  install  language-pack-gnome-zh  language-pack-zh    ttf-arphic-uming  ttf-wqy-zenhei  ## 安装中文支持,和中文字体

.......
还有用apt-get 删除不用的软件,例如oo,游戏等就不多说了,最后记得
代码:
apt-get clean      ##删除文件列表包
autoremove    ##删除旧版本包
rm    /etc/resolv.conf     
umount  /proc 


搞定之后,按ctrl+d 退出系统!!! 

4.生成安装软件列表
代码:
sudo chroot  squashfs-root  dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee newiso/casper/filesystem.manifest
sudo cp -v newiso/casper/filesystem.manifest{,-desktop}


4.5REMOVE定义不安装的软件,ubiquity就是安装程序。
代码:
REMOVE='ubiquity casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4'
for i in $REMOVE ; do  sudo sed -i "/${i}/d" image/casper/filesystem.manifest-desktop; done


5. 重新压缩映像。
删掉原来newiso/casper/filesystem.squashfs,还是先备份吧。。
代码:
sudo mksquashfs  squashfs-root    newiso/casper/filesystem.squashfs    ##等待一段时间


6. 编辑diskdefines,这里定义一些版本信息。
nano newiso/README.diskdefines
$ cat README.diskdefines 
#define DISKNAME Ubuntu 8.04.1 "Hardy Heron" - Release i386
#define TYPE binary
#define TYPEbinary 1
#define ARCH i386
#define ARCHi386 1
#define DISKNUM 1
#define DISKNUM1 1
#define TOTALNUM 0
#define TOTALNUM0 1

7. 生成各个文件的md5值.
代码:
sudo -s
(cd newiso && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
exit


8. 重新制作iso
代码:
cd newiso
sudo mkisofs -r -V "my ubuntu" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o "../myubuntu-804-livecd-iso" .
cd ../                    ### 这才是最重要的


定制好的iso文件是:myubuntu-804-livecd-iso, 先用虚拟机器试试吧。。 kvm/qemu用以下命令:
代码:
sudo  kvm -cdrom  myubuntu-804-livecd-iso  -localtime  -m 300    ##300是分配的内存



我还写过一个帖子,把当前使用的ubuntu做成livecd/usb,上述步骤只是它的一个部分。从中可以看出制作基于ubuntu发行版的思路来。 
http://forum.ubuntu.org.cn/viewtopic.ph ... highlight=  

希望对朋友们有用,欢迎交流:  zhongxin.huang@gmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值