Skip to content

Own initramfs solution support remote rescue (sshd), support dmcrypt, lvm and more.

License

Notifications You must be signed in to change notification settings

jeanfrancisroy/better-initramfs-touchpad

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

better-initramfs

This readme does not fit current git code, be aware!

  • Debug your brand-new kernel. For example, you got kernel panic unable to mount rootfs and you really don't know where the problem is, missing filesystems support in kernel or maybe missing support for your SCSI/SATA/whatever or your 2nd sata controller driver started before 1st and your 'sda' is 'sdb'. Really, initramfs sh is very useful. You can check dmesg, you can check /dev for devices and try to mount rootfs manually to get the error.
  • Luks encrypted rootfs.
  • LVM-based rootfs,
  • System rescue tool.
  • Support for LVM.
  • Support for dmcrypt Luks.
  • Support for booting from rootfs over encrypted lvm (encrypted lv or encrypted pv).
  • Support for TuxOnIce
  • Support for UUID and LABEL based root and enc_root.
  • RescueShell

Important

Be aware! Current code is under heavy development, make sure to read ChangeLog before starting with better-initramfs.

Clone git repository from github:

git clone https://github.com/slashbeast/better-initramfs.git

If you want fully working version, after clone switch to v0.3 tag:

git checkout v0.3

This doc is based on Funtoo/Gentoo GNU/Linux so package names etc. can be different than in your distro.

Prepare static linked binary files (emerge with USE=static):

sys-apps/busybox (must-have)
sys-fs/cryptsetup (optional, if you don't use dmcrypt)
sys-fs/lvm2 (optional, if you don't use LVM)

Build initramfs:

make

If you don't have Funtoo/Gentoo-based system, you may need to install binary files manualy, go to sourceroot/bin dir and:

cp -v /bin/busybox busybox
cp -v /sbin/cryptsetup cryptsetup
cp -v /sbin/lvm.static lvm
ln -s busybox sh

Then build image with:

make image

Available kernel boot parameters:

rescueshell
drop to busybox's sh just before mount rootfs to /newroot.
tuxonice
try resuming with TuxOnIce. Remember to set resume= variable by kernel boot params.
resume=<device/path>
Use only with tuxonice switch, set resume device/file. This have nothing to do with initramfs..
lvm
Scan all disks for volume groups and activate them.
luks
do cryptsetup luksOpen on enc_root variable.
enc_root=<device>
for example /dev/sda2 if sda2 is your encrypted rootfs. This variable is ignored if luks isn't enabled.
root=<device>
for example /dev/mapper/enc_root if you have LUKS-encrypted rootfs, /dev/mapper/vg-rootfs or similar if lvm or just /dev/sdXX if you haven't rootfs over lvm or encrypted.
rootfstype=<filesystem type>
Set type of filesystem on your rootfs if you do not want to use 'auto',
rootdelay=<integer>
Set how many seconds initramfs should wait [for devices]. Useful for rootfs on USB device.

Few example on grub(1) config, all switches and variables are configured by kernel boot command line.

Dmcrypted rootfs:

title Funtoo bzImage-2.6.32-gentoo-r5
kernel /bzImage-2.6.32-gentoo-r5 root=/dev/mapper/enc_root enc_root=/dev/sda2 luks
initrd /initramfs.cpio.gz

LVM based rootfs:

title Funtoo bzImage-2.6.32-gentoo-r5
kernel /bzImage-2.6.32-gentoo-r5 root=/dev/mapper/main-rootfs lvm
initrd /initramfs.cpio.gz

LVM based rootfs, rescueshell:

title Funtoo bzImage-2.6.32-gentoo-r5
kernel /bzImage-2.6.32-gentoo-r5 root=/dev/mapper/main-rootfs lvm rescueshell
initrd /initramfs.cpio.gz

Rootfs on LVM over dmcrypt (encrypted pv) with tuxonice and rootfstype env:

title Funtoo bzImage-2.6.33
kernel /bzImage-2.6.33 luks enc_root=/dev/sda2 lvm root=/dev/mapper/vg-rootfs rootfstype=ext4 resume=swap:/dev/mapper/vg-swap tuxonice
initrd /initramfs.cpio.gz

This code is released under Simplified BSD License, see LICENSE for more information.

better-initramfs is written and maintained by:
Piotr Karbowski <[email protected]>
Thanks to:
Yamashita Takao for testing and code suggestions.

About

Own initramfs solution support remote rescue (sshd), support dmcrypt, lvm and more.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%