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