標準ファームのディレクトリツリーを取り出し元として、
・標準ファームの HDD
・initrd
が考えられる。
・debian が動作している状態で、/boot にある
(標準ファームの HDD を接続しなくてよい)
・まるごとコピーするので、コンパクトな方がよい
との理由から、
今回は後者、/boot/initrd.buffalo から取り出すことにする。
mini:~# ls /boot conf_save.tgz initrd.buffalo log.tgz conf_save.tgz.orig initrd.buffalo.orig lost+found hddrootfs.buffalo.updated.done initrd.gz uImage.buffalo mini:~#/boot には、 initrd の /linuxrc を編集したときの initrd.gz があるので、 これを使う。
まずは、圧縮を解く。
mini:~# cd /boot mini:/boot# gunzip initrd.gz mini:/boot#
mini:/boot# ls -l /dev/loop? brw-rw---- 1 root disk 7, 0 May 26 11:41 /dev/loop0 brw-rw---- 1 root disk 7, 1 May 26 11:41 /dev/loop1 brw-rw---- 1 root disk 7, 2 May 26 11:41 /dev/loop2 brw-rw---- 1 root disk 7, 3 May 26 11:41 /dev/loop3 brw-rw---- 1 root disk 7, 4 May 26 11:41 /dev/loop4 brw-rw---- 1 root disk 7, 5 May 26 11:41 /dev/loop5 brw-rw---- 1 root disk 7, 6 May 26 11:41 /dev/loop6 brw-rw---- 1 root disk 7, 7 May 26 11:41 /dev/loop7 mini:/boot#OK
mini:/boot# mkdir /tmp/root mini:/boot# mount -o loop /boot/initrd /tmp/root mini:/boot# ls /tmp/root bin etc libexec linuxrc.orig mnt root sbin tmp var dev lib linuxrc lost+found proc rootfs sys usr mini:/boot#
mini:/boot# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/md1 4993920 213768 4780152 5% / tmpfs 63116 0 63116 0% /lib/init/rw tmpfs 63116 0 63116 0% /dev/shm /dev/root.old 15351 13874 1477 91% /initrd /dev/md0 988088 149348 788548 16% /boot /boot/initrd 15351 13820 1531 91% /tmp/root mini:/boot#/tmp/root は 13820 Used、/ は 4780152 の Available。
今なら、cp を使ってもよいのかな?
大昔は cp では、
リカーシブにコピーできないとか、
ファイル以外コピーできなかったり、
ファイルの日付が変ったり
して、具合いがよくなかったので、かならず tar を使っていた。
( cd コピー元 ; tar cf - . ) | ( cd コピー先 ; tar xvf -)
というワンパターンが脳に刻み込まれている。
コピー先を作る
mini:/boot# ls -l /usr/local/buffalo ls: /usr/local/buffalo: No such file or directory mini:/boot# mkdir !$ mkdir /usr/local/buffalo mini:/boot#コピーする
mini:/boot# (cd /tmp/root; tar cf - .)|(cd /usr/local/buffalo/; tar xvf -) : : mini:/boot# ls /usr/local/buffalo/ bin etc libexec linuxrc.orig mnt root sbin tmp var dev lib linuxrc lost+found proc rootfs sys usr mini:/boot#
mini:/boot# umount /tmp/root mini:/boot#
mini:/boot# ls /usr/local/buffalo/etc/linkstation_emergence /usr/local/buffalo/etc/linkstation_emergence mini:/boot# ls -l !$ ls -l /usr/local/buffalo/etc/linkstation_emergence -rw-r--r-- 1 root root 84 Jul 22 2008 /usr/local/buffalo/etc/linkstation_emergence mini:/boot# cat !$ cat /usr/local/buffalo/etc/linkstation_emergence VERSION=0.01 SUBVERSION=RAM 0.00 PRODUCTID=0x00003002 BUILDDATE=2008/07/22 16:22:55 mini:/boot# chroot /usr/local/buffalo/ cat /etc/linkstation_emergence VERSION=0.01 SUBVERSION=RAM 0.00 PRODUCTID=0x00003002 BUILDDATE=2008/07/22 16:22:55 mini:/boot#OK.
|
← 設定が復元できていない |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ セキュリティホールは塞がれている |