forked from hmw3/Tips_and_Hacks
Upload files to ''
Instructions for how to create a LiveCD image.
This commit is contained in:
parent
d05a7addc1
commit
566c7c9141
|
@ -0,0 +1,112 @@
|
|||
# Creating a LiveCD from an existing ISO #
|
||||
_These instructions are condensed and simplified from the guide at https://help.ubuntu.com/community/LiveCDCustomization. Other information, like regional defaults, or changing the kernel used, can be found in that more complete guide._
|
||||
|
||||
1. Make sure you have squashfs-tools and genisoimage
|
||||
|
||||
`sudo apt install squashfs-tools genisoimage`
|
||||
2. Extract the iso contents into a folder
|
||||
|
||||
```
|
||||
mkdir mnt
|
||||
sudo mount -o loop _iso filename_ mnt
|
||||
mkdir extract-cd
|
||||
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
|
||||
```
|
||||
3. Extract the Desktop system
|
||||
|
||||
```
|
||||
sudo unsquashfs mnt/casper/filesystem.squashfs
|
||||
sudo mv squashfs-root edit
|
||||
```
|
||||
4. Mount the necessary volumes
|
||||
|
||||
```
|
||||
sudo mount --bind /dev/ edit/dev
|
||||
sudo chroot edit
|
||||
mount -t proc none /proc
|
||||
mount -t sysfs none /sys
|
||||
mount -t devpts none /dev/pts
|
||||
```
|
||||
|
||||
To have network resolution in the chroot use:
|
||||
```
|
||||
sudo mount -o bind /run/ edit/run
|
||||
```
|
||||
5. (Optional) If you want to remove some of the installed software, to shrink the volume:
|
||||
|
||||
```
|
||||
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less
|
||||
```
|
||||
This will give you a list of installed apps sorted by size. Remember to `purge` any apps you remove. Alternatively, you can `rm-rf /tmp/* ~/.bash_history`.
|
||||
6. ####Make all of the changes to the installed software and configuration here.
|
||||
6. Unmount the volumes from within the chroot
|
||||
|
||||
```
|
||||
umount /proc || umount -lf /proc
|
||||
umount /sys
|
||||
umount /dev/pts
|
||||
```
|
||||
Note that if `umount /proc` fails it will cascade to the bruteforce `umount -lf /proc`
|
||||
7. Exit the chroot
|
||||
|
||||
```
|
||||
exit
|
||||
sudo umount edit/dev
|
||||
```
|
||||
|
||||
If you added the network layer:
|
||||
|
||||
```
|
||||
sudo umount edit/run
|
||||
```
|
||||
8. Assemble the file system
|
||||
9. Regenerate the manifest
|
||||
|
||||
```
|
||||
chmod +w extract-cd/casper/filesystem.manifest
|
||||
sudo su
|
||||
chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
|
||||
exit
|
||||
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
|
||||
sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
|
||||
sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
|
||||
```
|
||||
2. Compress the file system
|
||||
|
||||
```
|
||||
sudo rm extract-cd/casper/filesystem.squashfs
|
||||
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs
|
||||
```
|
||||
Alternately, for higher compression, try:
|
||||
```
|
||||
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -b 1048576
|
||||
```
|
||||
|
||||
And for the highest possible compression:
|
||||
```
|
||||
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -comp xz -e edit/boot
|
||||
```
|
||||
3. Update the filesystem.size file, which is needed by the installer.
|
||||
|
||||
```
|
||||
sudo su
|
||||
printf $(du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
|
||||
exit
|
||||
```
|
||||
2. Set an image name in extract-cd/README.diskdefines
|
||||
|
||||
```
|
||||
sudo nano extract-cd/README.diskdefines
|
||||
```
|
||||
1. Create the new md5sum.txt
|
||||
|
||||
```
|
||||
cd extract-cd
|
||||
sudo rm md5sum.txt
|
||||
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
|
||||
```
|
||||
2. Creat the new ISO image
|
||||
|
||||
```
|
||||
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../_new_iso_disk_image_name.iso .
|
||||
```
|
Loading…
Reference in New Issue