MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 9 as of 2023-08-07 11:08:00
  • LinuxFromScratch

LinuxFromScratch

  • https://www.linuxfromscratch.org/

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

  • https://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-11.3-NOCHUNKS.html

  • https://www.linuxfromscratch.org/hints/downloads/files/boot-cd_easy.txt

  • https://www.linuxfromscratch.org/lfs/downloads/stable/wget-list

List of the required downloads for LFS 11.3

   1 cd ~
   2 mkdir lfs
   3 cd lfs
   4 wget https://www.linuxfromscratch.org/lfs/downloads/stable/wget-list
   5 xargs -l wget < wget-list
   6 
   7 # wget --input-file=wget-list --continue --directory-prefix=$LFS/sources
   8 mkdir sources
   9 mv *patch  *xz *gz   *bz2  sources/

initramfs with static program

  • https://www.kernel.org/doc/html/latest/filesystems/ramfs-rootfs-initramfs.html#contents-of-initramfs

A good first step is to get initramfs to run a statically linked "hello world" program as init

   1 sudo apt install qemu-system 
   2 
   3 cd /tmp 
   4 wget https://saimei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-12.1.0-amd64-netinst.iso
   5 sudo mount -o loop /vagrant/debian-12.1.0-amd64-netinst.iso /mnt/iso
   6 
   7 # reuse isolinux from debian iso
   8 mkdir /tmp/debiancd 
   9 mkdir /tmp/debiancd/isolinux 
  10 mkdir /tmp/debiancd/install.amd 
  11 cd /mnt/iso
  12 cp isolinux/isolinux.cfg isolinux/*c32 isolinux/menu.cfg isolinux/txt.cfg /tmp/debiancd/isolinux 
  13 cp install.amd/initrd.gz install.amd/vmlinuz /tmp/debiancd/install.amd/
  14 cp /mnt/iso/isolinux/isolinux.bin /tmp/debiancd/isolinux/
  15 
  16 # hello.c
  17 cat > hello.c << EOF
  18 #include <stdio.h>
  19 #include <unistd.h>
  20 
  21 int main(int argc, char *argv[])
  22 {
  23   printf("Hello world!\n");
  24   sleep(999999999);
  25 }
  26 EOF
  27 gcc -static hello.c -o init
  28 echo init | cpio -o -H newc | gzip > test.cpio.gz
  29 
  30 cp test.cpio.gz debiancd/install.amd/test.cpio.gz
  31 
  32 cat > debiancd/isolinux/isolinux.cfg << EOF 
  33 default bootcd
  34 prompt 1
  35 timeout 40
  36 
  37 label bootcd
  38   kernel /install.amd/vmlinuz
  39   append initrd=/install.amd/test.cpio.gz vga=788
  40 EOF
  41 
  42 cd /tmp/
  43 mkisofs -o /tmp/output2.iso  -R -l -L -D -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "LFS_$(date +%Y%m%d)" /tmp/debiancd/ 
  44 rm /vagrant/output2.iso
  45 cp output2.iso /vagrant

qemu-system-x86_64 -kernel debiancd/install.amd/vmlinuz -initrd test.cpio.gz /dev/zero

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01