*NetBSD お試しパックの概要 [#z34b88bb]
-はじめに~
NetBSDに興味津々なLinux使いの方を対象に(私もそうですが)、~
NetBSDを手軽に味わえる ''NetBSDお試しパック'' をご用意しました。~
自己責任でお使いください。~
(NonakaさんやTokudaさんの成果物を使用させて頂いています。)~
~
-お試しパックの特徴
--RAMDISKから起動 … 基本的には、HDDのをさわりません~
--シリアルコンソール不要 … あったらあったで便利です~
--DHCPでIPアドレス自動取得
--telnetログイン~
--tcsh や wgetコマンド搭載
--NetBSDのHDDインストール用途にも使えます。
~
~
-お試しパックの中身
--SH-Linux Kernel Switchr 3.2
--netbsd-RAMDISK … NetBSDカーネル
--miniroot.img … ルートファイルシステムをRAMDISKイメージ化したもの
~
~
-用意する物
--telnetdを組み込んだLANDISK
--DHCPサーバ機能付ルーター等
~
~
*セットアップ&起動 [#u4f526e5]
-landiskへtelnetログイン後、rootになり、お試しパックを展開します。~
~
--NetBSDお試しパック … [[netbsd-otameshi.tgz:http://eggplant.ddo.jp/www/download/SH-Linux_Kernel_Switcher/netbsd-otameshi.tgz]]~
-~
#pre{{
# cd /mnt/hda3
# tar vxfz /mnt/hda3/share/disk/netbsd-otameshi.tgz
netbsd-otameshi/
netbsd-otameshi/dev/
netbsd-otameshi/dev/kernelsw
netbsd-otameshi/src/
netbsd-otameshi/src/build.sh
netbsd-otameshi/src/kernelsw.c
netbsd-otameshi/kernelsw.o
netbsd-otameshi/nbsd.conf
netbsd-otameshi/kernelsw.pl
netbsd-otameshi/netbsd-RAMDISK
netbsd-otameshi/miniroot.img
# cd netbsd-otameshi
}}
-&color(red){''2.6.13 カーネルから起動する場合''};~
kexecを使用してNetBSDカーネルをブートすることができます。~
まず、kexec-tools を apt-get して kexec コマンドをインストールします。
#pre{{
landisk:~netbsd-otameshi# apt-get install kexec-tools
}}
そして、次のように minirootイメージとカーネルを指定して kexec コマンドを実行すればOKです。~
#pre{{
landisk:~netbsd-otameshi# kexec --miniroot=miniroot.img netbsd-RAMDISK
}}
-2.4 カーネルから起動する場合(LANDISKオリジナル環境)~
同封するSH-Linux Kernel Switchr(kernelsw.pl)を使用してブート可能です。~
まず、Kenelsw.plを使用してNetBSDイメージを読み込み、
#pre{{
# ./kernelsw.pl nbsd.conf
sh: kernelversion: command not found
Loading .... done.
sh: kernelversion: command not found
==============================================
SH-Linux Kernel Switcher V3.2
----------------------------------------------
image = ./netbsd-RAMDISK (size:16662528,page:4069)
offset = 0x00001000
----------------------------------------------
kernel boot parameter details
0 : 0x200 # howto
1 : 0x0 # bootinfo[0] nentries
2 : 0x0 # bootinfo[1] common->len
3 : 0x0 # bootinfo[2] common->type
4 : 0x0 # bootinfo[3]
5 : 0x0 # bootinfo[4]
6 : 0x0 # bootinfo[5]
7 : 0x0 # bootinfo[6]
==============================================
}}
ファイルシステムをRead-onlyでマウント後、強制ブートを行います。~
Read-onlyな理由はファイルシステムが壊れるのを防止するためです。~
#pre{{
# mount -o ro,remount /dev/hda3
# ./kernelsw.pl -fswitch
sh: kernelversion: command not found
}}
-2.6.12 カーネルから起動する場合~
linux-2.6.12-sh.landisk.0.9以降のカーネルが対応しています。~
kernelsw.plでNetBSDイメージを2.4カーネルと同じ要領で読み込んだ後、~
"shutdown -h now"を行えばOKです。~
~
*Welcome to NetBSD World [#le094930]
-telnet接続~
DHCPサーバから割り当てられたIPアドレスでtelnetdが待機しているはずなので、~
そのIPアドレスで接続を試みます。~
#pre{{
NetBSD/landisk (netbsd) (ttyp0)
login: &color(red){root};
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 3.99.7 (RAMDISK) #4: Thu Sep 1 21:44:30 JST 2005
Welcome to NetBSD!
Terminal type is vt100.
No match.
netbsd:~#
}}
-後はご自由に~
--LANDISKの/dev/hda3をマウントしたければ、~
Linuxの/dev/hda1 〜 /dev/hda3は、NetBSDの/dev/wd0e 〜 /dev/wd0gに対応するので、
#pre{{
netbsd:~# mount /dev/wd0g /mnt
}}
--LANDISKの/dev/hda2をスワップとして使用したければ、
#pre{{
netbsd:~# swapon /dev/wd0f
}}
--chroot~
/dev/hda3のある特定ディレクトリへNetBSDのファイルシステムを構築してchrootするのも良いかも。~
~
-補足 … RAMDISKの使用状況
#pre{{
netbsd:~# df
Filesystem 512-blocks Used Avail Capacity Mounted on
mfs_root 23007 20873 984 95% /
kernfs 2 2 0 100% /kern
procfs 8 8 0 100% /proc
netbsd:~#
}}
-補足 … 搭載コマンド一覧~
#pre{{
[ expr ldd newfs shutdown
atactl fastboot less newfs_lfs slattach
awk fasthalt lmcctl newfs_msdos sleep
badsect fdisk ln nologin stty
brconfig file login page swapctl
bunzip2 find ls pax swapon
bzcat fsck mbrlabel pfctl sync
bzip2 fsck_ext2fs mkdir pflogd sysctl
cat fsck_ffs mknod ping systrace
ccdconfig fsck_lfs modload ping6 tar
cgdconfig fsck_msdos modunload poweroff tbrconfig
chgrp fsdb more pppoectl tcsh
chio fsirand mount ps telnetd
chmod ftp mount_ados pwd test
chroot getty mount_cd9660 raidctl tr
clri grep mount_ext2fs rcmd tset
cmp group mount_fdesc rcorder ttyflags
cp groupadd mount_ffs rcp tunefs
cpio groupdel mount_filecore rdump umount
csh groupinfo mount_kernfs rdump_lfs user
date groupmod mount_lfs reboot useradd
dd gunzip mount_mfs resize_lfs userdel
dev_mkdb gzcat mount_msdos restore userinfo
df gzip mount_nfs rm usermod
dhclient halt mount_ntfs rmdir veriexecctl
dhclient-script hostname mount_null rndctl vi
disklabel ifconfig mount_overlay route vinum
dkctl inetd mount_portal routed vnconfig
dmesg init mount_procfs rrestore wall
domainname install mount_ptyfs rtsol wdogctl
drvctl installboot mount_smbfs savecore wget
du ipf mount_ufs scan_ffs wsconsctl
dump ipppctl mount_umap scan_lfs zcat
dump_lfs kdump mount_union scsictl
echo kill mt sed
ed ktrace mv setkey
env ktruss newbtconf sh
}}
*コメント欄 [#j568e9b2]
何かありましたら、どうぞ。~
//#comment
*付録 … miniroot.imgの作り方メモ [#p9f3d1a2]
-空のRAMDISKイメージを作成~
#pre{{
#!/bin/sh -
#DISKSIZE=16384 # 8MB
#DISKSIZE=20480 # 10MB
DISKSIZE=24576 # 12MB
VND=/dev/vnd0
NAME=miniroot
IMAGE=${NAME}.img
vnconfig -u ${VND}d
echo "miniroot:\
:ty=floppy:se#512:nt#1:rm#3600:ns#${DISKSIZE}:nc#1:\
:pa#${DISKSIZE}:oa#0:ba#4096:fa#512:ta=4.2BSD:\
:pb#${DISKSIZE}:ob#0:\
:pc#${DISKSIZE}:oc#0:" > miniroot.disktab
dd if=/dev/zero of=${IMAGE} count=${DISKSIZE} bs=512
vnconfig -v -c ${VND} ${IMAGE}
disklabel -w -f miniroot.disktab ${VND} miniroot
newfs ${VND}a
rm -rf fs
mkdir fs
mount /dev/vnd0a fs
}}
-./fs 内にファイルシステムを構築~
省略~
~
-アンマウント
#pre{{
netbsd# umount fs
netbsd# vnconfig -u /dev/vnd0d
}}
~
-ちなみに既存のminiroot.img の中身の確認/変更を行うには、
#pre{{
netbsd# vncconfig -v -c /dev/vnd0 miniroot.img
netbsd# mount /dev/vnd0a fs
netbsd# cd fs
}}
~
#navi(NetBSD)