製作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-64-bit.iso .
腳本
#!/bin/bash
workdir=debian
volume="Debian sid 64-bit"
name=debian-sid-64-bit.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