2014年03月08日

HDL-GXRをSqueeze化する

Lenny化し、カーネルも2.6.28になったHDL-GXR。これでSqueezeにできる用意が調ったわけである。いざアップグレードしようとしたが、aptでアップグレードできないので、debootstrap でrootfsを作り、入れ替えることでSqueeze化することにした。

1. 用意する物
  1. カーネルを2.6.28にしたHDL-GXR
  2. Linuxが動いているPC
  3. USB-SATA接続キット


2. HDL-GXRでSqueeze用のrootfsを作成
HDDの空き容量が結構ないとダメなので、ディスク容量が足りない時は、外付けディスクなどを使用。
以下の例では、/opt/landisk 以下に作成する。/opt/landisk/debootstrapにdebootstrapを置き、rootfsは/opt/landisk/squeezeに作成。

# mkdir -p /opt/landisk/debootstrap
# cd /opt/landisk/debootstrap
# wget http://ftp.jp.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_1.0.26+squeeze1_all.udeb
# ar -x debootstrap-udeb_1.0.26+squeeze1_all.udeb
# tar zxvfp data.tar.gz
# export DEBOOTSTRAP_DIR=`pwd`/usr/share/debootstrap
# export PATH=$PATH:`pwd`/usr/sbin
# mkdir -p /opt/landisk/squeeze
# debootstrap --arch=armel squeeze /opt/landisk/squeeze http://ftp.jp.debian.org/debian
(略)
I: Base system installed successfully.
#

結構時間が掛かるので、しばらく待つ。終わったら、
# mount -t proc proc /opt/landisk/squeeze/proc
# chroot /opt/landisk/squeeze

最低限の設定をここでする。
# dpkg-reconfigure tzdata
(タイムゾーンをAsia/Tokyoに設定)

# passwd
(rootのパスワードを設定)

# vi /etc/apt/sources.list
(Squeezeのsources.listを設定)
--
deb http://ftp.jp.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.jp.debian.org/debian squeeze main contrib non-free
deb http://security.debian.org squeeze/updates main contrib non-free]
--

# apt-get update
# apt-get upgrade
# apt-get install udev openssh-server
(システムに必要なudev、ログインに必要なsshdをインストール)

# vi /etc/network/interfaces
(ネットワーク設定、DHCPでアドレスを取るようにしておく)
--
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
--

# vi /etc/fstab
(マウントポイントを設定しておく)
--
proc /proc proc defaults,nosuid,noexec 0 0
/dev/sda1 /boot ext3 defaults,rw 0 0
/dev/sda2 swap swap defaults 0 0
/dev/sda3 / ext3 defaults,rw 1 1
--

# apt-get clean
# exit

設定したらchrootを抜け、カーネルモジュールを配置する。
今走ってる/lib/modules/2.6.28 をコピーしてもいいし、前作ったtgzが残っていればそれを展開してもいい。
# mkdir -p /opt/landisk/squeeze/lib/modules
# cp -arp /lib/modules/2.6.28 /opt/landisk/squeeze/lib/modules
あるいは前回のlib.tgzを使って
# tar xvfz lib.tgz -C /opt/landisk/squeeze

最後に、tarで固めて、ファイルをどこかに取っておく。
# umount /opt/landisk/squeeze/proc
# tar cjvf /opt/landisk/squeeze-rootfs.tar.bz2 .
(squeeze-rootfs.tar.bz2 このファイルはどこかに取っておく)


3. HDDを取り外して別マシンでマウント、作ったtarを展開
HDL-GXRをシャットダウンしてストレージを取り外し、別のPCに接続(ここでは取り付けたHDDがsdbの前提)。
バックアップを取っておくなら
# mount /dev/sdb3 /mnt
# cd /mnt
# tar cjvf /export/landisk/lenny-rootfs-backup.tar.bz2 .
# cd /
# umount /mnt

こんな感じ。
しかる後、sdb3 を新しいものに入れ替える。
# mkfs.ext3 /dev/sdb3
# mount /dev/sdb3 /mnt
# tar xvfj /export/landisk/squeeze-rootfs.tar.bz2 -C /mnt
# umount /mnt


4. HDL-GXRに繋いでブート
うまくいけば、めでたくHDL-GXRがSqueezeになっているはずである。

作ったカーネルとrootfsを一応置いておく。簡単なまとめはこちら
カーネルとモジュールは、iptables関係・ipv6・USBウェブカム・USB無線LANなど、ごちゃごちゃと要らない物も入っているので、作り直した方がいいかも。

kernel hdl-gxr-kernel-2.6.28-20140308.tar.bz2
rootfs hdl-gxr-squeeze-rootfs-20140308.tar.bz2
これをディスクに放り込めば、とりあえずSqueezeが動く。はず。
posted by usoinfo at 17:32 | Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]