Sirius -旧ブログ、更新されません-

2007年01月20日の記事

2007年1月20日(土) 16:25

initrd を作り変える

LinkStation/玄箱をハックしようを参考に、initrd を作り直して、EM モードでも telnet を使えるようにします。

まず、initrd.img を initrd.img.zip に名前を変えて、hddrootfs.img とは違う某パスワードで解凍。
出てきた initrd.buffalo を玄箱へ持ってきて、

# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1

で initrd.gz を取り出し、解凍します。

# gunzip initrd.gz

これで、initrd ができました。
loop デバイスを使って mount します。

# mount -o loop initrd /mnt/tmp

initrd の内容が /mnt/tmp 以下にありますから、必要なファイルを修正します。telnet はファームの修正と同じです。root のパスワードは shadow の編集で ok です。
アンマウント。圧縮、イメージ作成。

# umount /mnt/tmp
# gzip initrd
# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo

mkimage は一行です。玄箱にはもともと mkimage は入ってませんが、探せばすぐに見つかるでしょう。
後は、zip で固めて出来上がり。

こうして出来上がった initrd を LS-GL へ持っていくなり、initrd.img を使ってファームを更新すれば、EMモードでも telnet が使えます。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月20日(土) 11:04

LS-GL のHDDの換装(3)

root でログインできるようにします。
結局、hddrootfs で shadow ファイルを編集しても無駄でした。
次のような shell スクリプトを etc/init.d に myroot.sh という名前で作成し、実行属性をつけます。
#!/bin/sh
if [ -x /etc/init.d/myroot.sh ]; then
   echo "myroot:x:0:0:MyRoot:/root/:/bin/bash">>/etc/passwd
   chmod u+w /etc/shadow
   echo "myroot::13320:0:99999:7:::" >> /etc/shadow
   chmod u-w shadow
fi

次に etc/init.d/rcS の最後の行の前に次の内容を追加します。
# Add myroot User
if
   grep myroot /etc/passwd > /dev/null
then
   if [ -f /etc/init.d/myroot.sh ]; then
      rm /etc/init.d/myroot.sh
   fi
else
   if [ -x /etc/init.d/myroot.sh ]; then
      /etc/init.d/myroot.sh
   fi
fi

これで、hddrootfs.img を作り直して、強制アップデートをかけました。
telnet。
myroot でログイン。

できました。あとは、root のパスワードを変更して、再起動。
root でログインできたら、/etc/passwd と /etc/shadow から myroot を削除して、rcS の修正を元に戻して OK。

次は ssh です。
(2007.01.21 訂正)

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2007年1月20日(土) 00:34

LS-GL のHDDの換装(2)

起動不能にしてしまった、LS-GL。
Terastation に HDD をつないでみたら sda2 のファイルシステムが壊れているようでした。Terastation でファイルシステムを作り直すと緊急モードで LS-GL が起動しました。
標準ファームでアップデートをしたら、普通どおりに起動するようになりました。

昨日、ファームのアップデートが終了したのに緊急モードでしか起動しなかったのは、hddrootfs.img の作成に失敗していたようです。
hddrootfs.img を解凍すると hddrootfs.buffalo.updated ができるのですが、このファイル名を間違っていました。それでファームが展開できなかったようです。

で、ファイル名を正しくしてデバックモードで強制アップデート。アップデートは "rootfsをアップデートする"、"バージョンチェックをしない"、"強制アップデート"だけチェックしました。
今度は起動しました。

早速、telnet でログインしてみました。

でた〜。ログインプロンプトが出ました。
root でログインっと。

…。へ?。Password ってなに?…。
やっぱり。Terastation と同じようにどっかで書き戻してるな。

admin ではログインできましたが、su や sudo もないし。hddrootfs の作り直しです。
でも、これで root のパスワードさえ何とかできれば、LS-GL をばらさなくても telnet が使えそうです。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL
Sirius -旧ブログ、更新されません-

MySketch 2.7.2 written by 夕雨