2007年1月20日(土) 16:25
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
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。
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