Skip to content

Commit

Permalink
1. Support DVD image
Browse files Browse the repository at this point in the history
2. Add ntfs-3g and mousepad

3. Add additional drivers for WLAN compatibility
  • Loading branch information
danchouzhou committed Dec 23, 2023
1 parent 10693e2 commit 582b75c
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 4 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,19 @@ sudo grub-install --target=i386-pc --root-directory=/mnt/EFI --boot-directory=/m
# Unmount and your disk is ready to boot!
sudo umount /mnt
```
### Make a DVD image
```
chmod +x boot_dvd.sh
sudo ./boot_dvd.sh
```

## Read this article for more detail
[Build a RAM based filesystem server | Danny’s tech blog](https://danchouzhou.github.io/2022/10/31/ram-based-rootfs-server.html)

## Tested distributions
- Debian 11.6 (bullseye)
- Debian 12.4 (bookworm)

## Tested hardware
- Gigabyte B550M AORUS PRO-P / Ryzen 7 5700G CSM EFI, CSM Legacy, EFI Non-secure, EFI secure boot
- Lenovo T480 (20L5CTO1WW), EFI secure boot
34 changes: 34 additions & 0 deletions boot_dvd.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash

# Exit if there is any error
set -e

echo "Copying bootfiles ..."
mkdir -p iso/EFI
cp -r /bootfiles/* iso/EFI

echo "Building EFI boot image ..."
mkdir -p iso/EFI/grub/x86_64-efi
dd if=/dev/zero of=iso/EFI/grub/x86_64-efi/efi.img bs=512 count=32K
mkfs.vfat iso/EFI/grub/x86_64-efi/efi.img
mount iso/EFI/grub/x86_64-efi/efi.img /mnt
grub-install --target=x86_64-efi --removable --efi-directory=/mnt --boot-directory=/mnt/EFI iso/EFI/grub/x86_64-efi/efi.img
cp -r /mnt/EFI/* iso/EFI
umount /mnt

echo "Building boot image for legacy BIOS ..."
grub-mkimage -O i386-pc -o core.img -p /EFI/grub iso9660 biosdisk search probe
mkdir -p iso/EFI/grub/i386-pc
cat /usr/lib/grub/i386-pc/cdboot.img core.img > iso/EFI/grub/i386-pc/eltorito.img
cp /usr/lib/grub/i386-pc/* iso/EFI/grub/i386-pc/

# Create disk image
xorriso -as mkisofs -r \
-V 'Debian 12' \
-o debian-12.4.0-xfce-ramfs.iso \
-J -joliet-long \
-b EFI/grub/i386-pc/eltorito.img \
-boot-load-size 4 -boot-info-table -no-emul-boot \
-eltorito-alt-boot \
-e EFI/grub/x86_64-efi/efi.img -no-emul-boot \
iso
8 changes: 4 additions & 4 deletions ramfs_setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ set -e
echo "Install additional software ..."
apt update
# basic system utilities
apt install htop screen nano wget bash-completion eject dosfstools exfat-fuse grub-pc-bin mdadm lvm2 iptables net-tools network-manager -y
apt install htop screen nano wget bash-completion eject dosfstools ntfs-3g exfat-fuse grub-pc-bin mdadm lvm2 iptables net-tools network-manager -y
# driver
apt install firmware-iwlwifi firmware-amd-graphics firmware-misc-nonfree -y
apt install firmware-linux-nonfree firmware-iwlwifi firmware-realtek firmware-atheros -y
# xfce enviroment
apt install xserver-xorg xserver-xorg-core xserver-xorg-video-all xfonts-base xinit x11-xserver-utils xfce4 tango-icon-theme xfce4-terminal thunar-volman gvfs blueman bluetooth network-manager-gnome --no-install-recommends -y
apt install xserver-xorg xserver-xorg-core xserver-xorg-video-all xfonts-base xinit x11-xserver-utils xfce4 tango-icon-theme xfce4-terminal thunar-volman gvfs mousepad blueman bluetooth network-manager-gnome --no-install-recommends -y
apt install pavucontrol -y
# browser
apt install chromium --no-install-recommends -y
Expand Down Expand Up @@ -82,7 +82,7 @@ cp /etc/fstab.ramfs /etc/fstab
echo "Preparing boot files ..."
echo "Packing rootfs ..."
mkdir -p /bootfiles/grub
tar zcf /bootfiles/rootfs.tar.gz --exclude='ramfs_setup.sh' --exclude='local.ramfs' --exclude='/bootfiles' --one-file-system / --checkpoint=.5000
tar zcf /bootfiles/rootfs.tar.gz --exclude='ramfs_setup.sh' --exclude='local.ramfs' --exclude='boot_dvd.sh' --exclude='README.md' --exclude='/bootfiles' --one-file-system / --checkpoint=.5000

echo "Copying Linux kernel ..."
cp /boot/vmlinuz-`uname -r` /bootfiles/vmlinuz-`uname -r`
Expand Down

0 comments on commit 582b75c

Please sign in to comment.