手工打造自己的 Debian/Ubuntu LiveCD [論壇 - Ubuntu 非官方發行版討論]
正在瀏覽:
1 名遊客
手工打造自己的 Debian/Ubuntu LiveCD |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員四級
![]() ![]() 註冊日期:
2015/9/29 21:19 所屬群組:
已註冊使用者 等級: 16
HP : 0 / 380
![]() |
製作Live檔案系統
凡是基於debian吃deb的發行板, 應該都可以. 範例: Debian 系統裝好後先執行下面指令清除垃圾 $ sudo apt-get autoremove $ sudo apt-get autoclean $ sudo apt-get clean all 然後重開機進入其他Linux系統或live系統, 進行進一步清理垃圾 例如 Debian安裝在sda4 將sda4掛載到/mnt $ sudo su # mount /dev/sda4 /mnt 進階清除垃圾 rm -rf /mnt/boot/grub/grub.cfg rm -rf /mnt/home/*/* rm -rf /mnt/home/*/.* rm -rf /mnt/root/* rm -rf /mnt/root/.* rm -rf /mnt/lost+found rm -rf /mnt/media/* rm -rf /mnt/tmp/* rm -rf /mnt/tmp/.* rm -rf /mnt/etc/fstab rm -rf /mnt/var/log/* rm /mnt/var/cache/apt/archives/* rm /mnt/var/lib/apt/lists/* rm /mnt/var/lib/dbus/machine-id rm /mnt/etc/machine-id touch /mnt/etc/machine-id rm -rf /mnt/var/cache/fontconfig/* fstab 不刪也無所謂, 有潔癖的話就刪掉吧. 修改主機名稱 名稱可隨意修改. 範例: localhosts # echo localhosts > /mnt/etc/hostname 然後開始製作Live檔案系統 # cd / # mksquashfs mnt /存放路徑/filesystem.squashfs 這也等於將系統備份起來. 壓縮完成後, 重開機進到Debian系統. 製作 Live initramfs $ sudo apt-get install live-boot 依賴套件清單: live-boot live-boot-initramfs-tools $ mkdir debian $ mkdir debian/live $ sudo mkinitramfs -o ~/debian/live/initrd.gz $ sudo cp /boot/vmlinuz-* ~/debian/live/vmlinuz 然後將壓縮好的 filesystem.squashfs 放入 ~/debian/live/ 這一步完成其實就可以用Grub4dos方式引導了 製作ISO映像檔 $ mkdir debian/isolinux isolinux可參考其他發行版製作 新版的sid找不到有isolinux.bin的套件 最快的方法找其他Linux發行版, 將isolinux目錄內容複製到~/debian/isolinux目錄內. 然後修改 isolinux.cfg ---- 支援BIOS/UEFI啟動 isolinux 目錄基本文件 isolinux.bin isohdpfx.bin ldlinux.c32 libutil.c32 menu.c32 (大部分是用vesamenu.c32) isolinux.cfg EFI 目錄文件 /EFI/BOOT/BOOTx64.EFI /EFI/BOOT/grubx64.efi boot目錄文件 /boot/grub/x86_64-efi /boot/grub/font.pf2 /boot/grub/efi.img /boot/grub/grub.cfg /boot/grub/loopback.cfg $ leafpad ~/debian/isolinux/isolinux.cfg 內容 ----------------------------------------------------------------- UI menu.c32 # 或 UI vesamenu.c32 DEFAULT live timeout 1 LABEL live MENU LABEL Start Debian sid kernel /live/vmlinuz append boot=live config initrd=/live/initrd.gz live-media-path=/live ----------------------------------------------------------------- 參考文件 https://github.com/Mint-Fans/linux-package/raw/ubuntu/ubuntu-isolinux.tar.gz https://github.com/Mint-Fans/linux-package/raw/ubuntu/mint-isolinux.tar.gz 建立ISO映像檔 $ sudo apt-get install genisoimage xorriso $ sudo ln -s /usr/bin/genisoimage /usr/bin/mkisofs $ cd debian $ sudo xorriso -as mkisofs -r -J -l -isohybrid-mbr isolinux/isohdpfx.bin -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -V "Debian SID 64-bit" -o ../debian-sid-64bit.iso . 腳本 ================================ #!/bin/bash workdir=debian volume="Debian SID 64-bit" name=debian-sid-64bit.iso cd $workdir xorriso -as mkisofs -r -J -l \ -isohybrid-mbr isolinux/isohdpfx.bin \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \ -V "$volume" \ -o ../$name \ . ================================ 將ISO映像檔寫到USB $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 201M 0 part ├─sda2 8:2 0 201M 0 part /boot ├─sda3 8:3 0 15G 0 part / └─sda4 8:4 0 15G 0 part /mnt sdb 8:16 1 979.8M 0 disk └─sdb1 8:17 1 978M 0 part /run/media/debian/USB sr0 11:0 1 1024M 0 rom 例如USB裝置為sdb # dd if=Debian.iso of=/dev/sdb USB/HD Grub4dos引導選單 title Debian sid find --set-root --ignore-floppies --ignore-cd /live/vmlinuz kernel /live/vmlinuz boot=live initrd /live/initrd.gz boot 沒有安裝程式的LiveCD 安裝方法可參考 http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=103692&forum=50 debian系列, 沒有重建fstab的工具, 可以使用archlinux的genfstab. genfstab 安裝方式 # wget https://projects.archlinux.org/arch-install-scripts.git/snapshot/arch-install-scripts-15.tar.gz # tar -zxvf arch-install-scripts-15.tar.gz # cd arch-install-scripts-15 # make # cp genfstab /usr/bin # cd ../ 建立fstab # genfstab -U /mnt > /mnt/etc/fstab 如果系統無法重建 initramfs 備份完後移除live-boot $ sudo apt-get --purge remove live-boot live-boot-initramfs-tools $ sudo apt-get autoremove
2016/2/12 15:29
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.