LinuxをRAMDISK起動し電源ブチ切り対応にする(準備)

Debian8, CentOS7をRAMDISK起動にし、電源ブチ切り対応する。

目的:
□ 停電でも壊れないLinuxサーバを構築したい。
USBメモリLinux等を安心して利用でき、かつ、メンテナンスもスムーズに行いたい。
□ 電源ブチ切りOKのラズパイを作りたい。
SSDを延命したい(Flashメモリの書込回数には上限があるので)。
□ 怪しいサイトから情報入手したいけど、被害は受けにくいようにしておきたい。
Linuxパソコン or ラズパイを貸し出すことになったが、中身はいじられたくない。


Debian,Ubuntuの場合のキーワード

mkinitramfs, /usr/bin/lsinitramfs, /usr/share/initramfs-tools
【参考】Debianの初期RAMDISK分解:
Debian系の初期RAMDISK(initrd)に含まれる/sbin/initはスクリプトになっており、解析や起動調整がしやすい。ただ、initrdにfirmwareバイナリが付着しているケースがあり、これを剥ぎ取ってから分解する必要がある。このため、/usr/bin/lsinitrdを改造して利用する。
(1) lsinitrdをコピーする。
cp -a /usr/bin/lsinitramfs /usr/local/bin/my_decomp_initrd
(2) my_decomp_initrdの15行目を書き換える。
#cpio_args="--extract --quiet --list"
cpio_args="-idm"
(3) 実行
mkdir work
cd work
my_decomp_initrd /boot/initrd.img-3.16.0-4-amd64

CentOSの場合のキーワード:
dracut, /usr/bin/lsinitrd, stetelesslinux

CentOS7での調整例(このblog内):
http://d.hatena.ne.jp/t0a9n9a4k/20160504/1462324940

【参考】CentOS7の初期RAMDISK分解:
CentOSの場合、初期RAMDISKの/sbin/initはバイナリへのSYMLINKなので、分解しても解析が難しい。 (1)/usr/local/sbin/my_decomp_initrdを作成
#!/bin/bash
/usr/lib/dracut/skipcpio "$@" | zcat -- | cpio -idmv
cat "$@" | zcat -- | cpio -idmv
(2) 実行
mkdir work
cd work
my_decomp_initrd /boot/initramfs-3.10.0-327.13.1.el7.x86_64.img