簡談ubuntu之DIY發行版

2007.05.13 
 
二十一世紀到了,每一個人都強調本身的個性,因而一種叫作DIY的東西悄然興起。
  操做系統做爲全人類智慧的結晶,天然DIY起來難度極大,於是DIY出一個操做系統成就感絕對比買宜家的東西的成就感大。
  爲了避免至於從頭開始編寫一個操做系統,咱們固然把採用現成的操做系統做爲一個底線。
  固然,咱們能夠經過LFS讓咱們爽到底,可是,可以作到LFS的人可真的是百裏挑一。並且更重要的是LFS簡直在挑戰個人忍耐程度。
  個人這篇文章,教你們如何DIY一個本身的ubuntu發行版。在很是節省時間的狀況下,達到耍酷的目的。
  就比如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把光盤燒了
相關文章
相關標籤/搜索