戻る

前へ| 次へ

isolinux initrd.gz 作成その2

さて isolinux の initrd.gz を 展開して出来た initrd の 中の init に 取り掛かります。/sbin/init ではありません

init

# pwd
/root/work/pmt
# ls
bin/    dev/  init*  loop/        proc/     sbin/      sys/
cdrom/  etc/  lib/   lost+found/  put_old/  shutdown*
# file init 
init: POSIX shell script, ASCII text executable
# ls sbin/
init*
# file sbin/init 
sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), \
statically linked, for GNU/Linux 2.0.0, stripped

init の 改悪の履歴

簡単に いえば (重複するのですが

init の 改悪の履歴 で 見て来ました。

この方法でも良いのですが 今回は 別の方法で 試みます。

つまり

...
  for i in sda sdb sdc sdd sde sdf sdg sdh ; do
    if [ -d /sys/block/$i ] && [ `cat /sys/block/$i/removable` -eq 1 ] ; then
...

の 部分で 何処に 本体の root ファイルシステムが 有るのかを探しているようです。

それならば 今回 fstab を UUID に 書き換えたので その探す部分も UUID に 書き換えましょう というのが 今回試みる事です。

init

すなわち 以下の部分を 改悪します

# pwd ;ls
/root/work/pmt
bin/    dev/  init*  loop/        proc/     sbin/      sys/
cdrom/  etc/  lib/   lost+found/  put_old/  shutdown*
# vi init
# cat init 
...

mount UUID=cd4b4e85-b0f7-4652-a787-7594c06c727d /cdrom 2> /dev/null
CD_DEV=UUID=cd4b4e85-b0f7-4652-a787-7594c06c727d

echo "CD_DEV=UUID=cd4b4e85-b0f7-4652-a787-7594c06c727d "
sleep 10

echo "`df`"
echo "mount  dev Where ? "
sleep 10
...

今回使用する USB は sdb で 認識されているので

# blkid | grep sdb
/dev/sdb1: LABEL="sqBoot" UUID="3c6d2a7b-83b0-4c1b-95e2-93548920849f" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb2: LABEL="SQRooT" UUID="cd4b4e85-b0f7-4652-a787-7594c06c727d" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb3: LABEL="swapsq" UUID="d82fede1-abb3-494f-a990-e44b9501ccee" TYPE="swap" 

後は

# cd ../
# umount pmt/
# gzip initrd 

にゃんたろう 拝!

2014年 3月 23日 日曜日 21:26:43 JST 作成


前へ| 次へ

戻る

Copyright © 2006.-2014. nyantarou All Rights Reserved.