まず、 Install用の disk imageをdownloadしてCompactFlashに書き込みます。 Linuxや*BSDを使っている人は、以下の様にしてddを使ってCompactFlashへ書き 込みます。間違えてHDDに書いてしまわない様に気をつけてください。
Windowsを使っている人はrawriteを使えば書き込めるんじゃないかな…
# gzip -d usl5p-128M_5.1.2.gz # dd if=usl5p-128M_5.1.2 of=/dev/COMPACTFLASH bs=512 #
Install用CompactFlashを用意できたら、USL-5Pに取り付けてください。
なお、このinstall用のdisk imageの作り方は、縮小版NetBSDの作成を参照してください。
Serial consoleを取り付けて電源を入れます。しばらくすると、以下のように "login:"が表示されて止まるはずですので、"root"で loginしてください。
SH IPL+g version 0.9, Copyright (C) 2000 Free Software Foundation, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details type `w'. This is free software, and you are welcome to redistribute it under certain conditions; type `l' for details. 2002/09/09 Making. 2004/09/08 I-O DATA NSU Update. 266:133:33 on base clock 22.22MHz and SDRAM 4 burst. CF boot. PCIC initialization done. MASTER:48bit LBA mode non support Disk drive detected: KTC CF YUAN1026 KTC CF LBA: 001EFE10 DiskSize: *******Byte PIO MODE1 Set Transfer Mode result: 51 > b Set Transfer Mode result: 51 Initialize Device Parameters result: 50 IDLE result: 50 NetBSD/landisk ffsv1 Primary Bootstrap ... NetBSD/landisk (usl5p.example.com) (console) login: root ... usl5p#
Serial consoleがない場合、telnetを使ってloginします。Install用の CompactFlashで起動すると、USL-5Pには192.168.1.100というIPが割り当てられ ます。
USL-5PにEthernet cableを取り付けて電源をいれ、しばらく(1分程度)待ちます。 その後、192.168.1.100にtelnetすると以下のようにloginの表示が出るので、 "root"でloginしてください。
NetBSD/landisk (usl5p.example.com) (ttyp0) login: root ... usl5p#
Install用CompactFlashでUSL-5Pを起動したら、本番用のCompactFlashをUSB
card readerに刺して、USL-5Pへ取り付けてください。
以下のような表示がでるはずです。
umass0 at uhub2 port 1 configuration 1 interface 0 umass0: Genesys Logic USB Storage, rev 2.00/96.01, addr 2 umass0: using SCSI over Bulk-Only scsibus0 at umass0: 2 targets, 4 luns per target sd0 at scsibus0 target 0 lun 0: <Generic, STORAGE DEVICE, 9601> disk removable sd0: fabricating a geometry sd0: 1943 MB, 1943 cyl, 64 head, 32 sec, 512 bytes/sect x 3980592 sectors sd1 at scsibus0 target 0 lun 1: <Generic, STORAGE DEVICE, 9601> disk removable sd1: drive offline sd2 at scsibus0 target 0 lun 2: <Generic, STORAGE DEVICE, 9601> disk removable sd2: drive offline sd3 at scsibus0 target 0 lun 3: <Generic, STORAGE DEVICE, 9601> disk removable sd3: drive offline
上記は私の手持ちのcard readerの例で、 "sd0: 1943 MB, 1943 cyl, 64 head, 32 sec, 512 bytes/sect x 3980592 sectors" というのがCompactFlashです。sd0として扱われることがわかります。 Card readerによってはsd1だったりsd2だったりしますので、これ以下の説明で sd0やrsd0になっているところをsd1やrsd1と適宜読み替えてください。
なお、sd0というのは、SCSI-disk用のdeviceです。USB接続の記憶装置は NetBSDではSCSI-diskとして扱われます。
まず最初に、本番用CompactFlashのMaster boot recordを書き込みます。
# fdisk -i /dev/rsd0d We haven't written the MBR back to disk yet. This is your last chance. Should we write new partition table? [n] y #
CompactFlashにNetBSD用のdisklabelを用意します。disklabelはBSDで
partitionを作るための物で、MS-DOS/Windowsなどのfdiskに相当するものだと
思ってください。
deviceの意味は以下の通りです。
device | 捕足 |
---|---|
/dev/sd0d | CompactFlash全体。/dev/sd0というdeviceは存在せず、sd0dがCompactFlash全体を表す。 |
/dev/sd0c | NetBSDが扱うdisklabel全体がsd0cになる。sd0cの中にsd0a、sd0b、sd0e…のpartitionができる。 |
/dev/sd0a | /dev/sd0c内の1つめのpartition。今回はroot file-systemとして使う。 |
/dev/sd0b | /dev/sd0c内の2つめpartition。今回はswapとして使う。 |
/dev/sd0e | /dev/sd0c内の3つめ以降はsd0e、sd0fと続いていく。今回は使わない。 |
あらかじめ以下のようにsector数をまとめておくと楽です。今回は、2GiBの CompactFlashに、約1.9GiBの root partition と、64MiBの swap partitionを 用意します。
dev | start(sectors) | size (sectors) | size (MiB) | 備考 |
---|---|---|---|---|
sd0a | 0 | 3849520 | 1890 | root |
sd0b | 3849520 | 131072 | 64 | swap |
sd0c | 0 | 3980592 | 1945 | BSD disklabel全体 |
sd0d | 0 | 3980592 | 1945 | CompactFlash全体 |
disklabelを実行して、/dev/sd0aから/dev/sd0dを用意します。実行例は以下の ようになります。
# disklabel -I -i /dev/rsd0d partition> d Filesystem type [?] [unused]: Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: 0s Partition size ('$' for all remaining) [1943.65c, 3980592s, 1943.65M]:$ partition> c Filesystem type [?] [unused]: Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: 0s Partition size ('$' for all remaining) [0c, 0s, 0M]: $ partition> a Filesystem type [?] [4.2BSD]: Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: 0s Partition size ('$' for all remaining) [1879.65c, 3849520s, 1879.65M]: 3849520s partition> b Filesystem type [?] [unused]: swap Start offset ('x' to start after partition 'x') [1879.65c, 3849520s, 1879.65M]: a Partition size ('$' for all remaining) [64c, 131072s, 64M]: $ partition> P 5 partitions: # size offset fstype [fsize bsize cpg/sgs] a: 3849520 0 4.2BSD 0 0 0 # (Cyl. 0 - 1879*) b: 131072 3849520 swap # (Cyl. 1879*- 1943*) c: 3980592 0 unused 0 0 # (Cyl. 0 - 1943*) d: 3980592 0 unused 0 0 # (Cyl. 0 - 1943*) partition> W Label disk [n]? y Label written partition> Q #
newfsを使って、file systemを作ります。いわゆる、format作業です。
# newfs -m 5 -b 32768 -f 4096 /dev/rsd0a /dev/rsd0a: 1879.6MB (3849520 sectors) block size 16384, fragment size 2048 using 11 cylinder groups of 170.89MB, 10937 blks, 21632 inodes. super-block backups (for fsck_ffs -b #) at: 32, 350016, 700000, 1049984, 1399968, 1749952, 2099936, 2449920, 2799904, .............................................................................. #
installbootで、bootloaderを書き込みます。
# installboot -v /dev/rsd0a /usr/mdec/bootxx_ffsv1 File system: /dev/rsd0a Primary bootstrap: mdec/bootxx_ffsv1 # mount -o log /dev/sd0a /mnt # cp /usr/mdec/boot /mnt #
最低限、kern-GENERIC.tar.bz2、etc.tar.bz2、base.tar.bz2を展開すれば動く物ができます。 Install用CompactFlashの/sets/に前記の3つのfileが入っているので、以下の ようにして展開します。Compact Flashの容量に余裕があれば、man.tar.bz2、 misc.tar.bz2、text.tar.bz2なども展開しておくと便利です。
# cd /mnt # tar xfvjp /sets/kern-GENERIC.tar.bz2 ./netbsd tar: ustar vol 1, 1 files, 2097152 bytes read, 0 bytes written in 3 secs (699050 bytes/sec) # tar xfvjp /sets/etc.tar.bz2 ... tar: ustar vol 1, 299 files, 1687552 bytes read, 0 bytes written in 6 secs (281258 bytes/sec) # tar xfvjp /sets/base.tar.bz2 ... tar: ustar vol 1, 4820 files, 69664768 bytes read, 0 bytes written in 222 secs (313805 bytes/sec) #
最後に、以下のようにして/devを用意します。"./MAKEDEV all"で
必要なもののほとんどはできてしまいます。この作業は少し(3分ぐらい)かか
りますので、気長に待ちましょう。
追加でUSL-5P電源ボタン検知用の/dev/powerも作ります。
# cd /mnt/dev # ./MAKEDEV all # mknod -m 640 power c 55 2 #
NetBSDを起動させるために必要な設定を書き換えます。必要な設定は、 /etc/fstabと/etc/rc.confです。編集は、
# vi /mnt/etc/fstab
のようにして行います。編集するのは"/mnt/etc/"以下で、間違って install用CompactFlashの設定(/etc/以下)を書き換えないように気をつけてく ださい。
とりあえずinstall用CompactFlashと同じ設定で起動できればよいなら、以下の ようにして/etc/fstab、/etc/rc.confを複製するだけでも起動できます。
# cp /etc/fstab /mnt/etc # cp /etc/rc.conf /mnt/etc
file systemの一覧です。USB card readerに刺しているときは/dev/sd0aとして 扱われましたが、USL-5Pの基盤につけた場合は/dev/wd0aとして扱われます。
/dev/wd0a / ffs rw,log,noatime 1 1 /dev/wd0b none swap sw 0 0 ptyfs /dev/pts ptyfs rw 0 0
とりあえず、以下の内容を張り付けておけば動きます。telnetを受け付ける必 要がなければ、"inetd=YES"は"inetd=NO"の方が良いでしょ う。
# Load the defaults in from /etc/defaults/rc.conf (if it's readable). # These can be overridden below. # if [ -r /etc/defaults/rc.conf ]; then . /etc/defaults/rc.conf fi # If this is not set to YES, the system will drop into single-user mode. # rc_configured=YES hostname=usl5p.example.com defaultroute=192.168.1.254 ifconfig_re0="inet 192.168.1.1 netmask 255.255.255.0" # dhclient=YES # dhclient_flags="re0" inetd=YES nfs_client=NO postfix=NO sshd=NO powerd=YES ntpd=NO # cron=NO # named=YES # no_swap=YES # ntpdate=YES # ntpdate_hosts="ntp.example.com" update_motd=NO ccd=NO raidframe=NO cgd=NO quota=NO # for pkgsrc lighttpd=YES openntpd=YES snmptrapd=YES
Serial consoleを繋がずにtelnetでloginしたい場合は /etc/inetd.confを修正してください。 Install用CompactFlashには telentを受け付けるように修正済のものが入っているので、単に複製するだけ でも可です。
# cp /etc/inetd.conf /mnt/etc
/etc/inetd.confにはあらかじめ雛形ができています。telnetの行を探して、先 頭の"#"と"-a valid"以降を削除してください。
telnet stream tcp nowait root /usr/libexec/telnetd telnetd
NetBSDの標準設定では、networkから直接root loginすることはできません。こ
れは安全上の配慮で、Linuxなどでも同様です。
/etc/ttysの設定を書き換えることでrootでもloginできるようになりますが、
それよりも一般userをこの段階で作ってしまって、一般userでlogin->suで
rootになる方が良いでしょう。
次のようにchrootして作業します。(もちろん、somegrpやsomeoneの部分は好き
な名前にしてください)
# chroot /mnt # groupadd -g 10000 somegrp # useradd -g somegrp -u 10000 -m -s /bin/sh someone # passwd someone New Password: hogehoge Retype New Password: hogehoge # usermod -G wheel someone # exit
最後の"usermod -G wheel someone"は、wheel groupにsomeoneとい うuserを追加する作業です。これを忘れると、someoneでloginはできても、su でrootになれないという悲しい思いをします。
ここまで作業したら、電源を切ってCompactFlashをUSL-5Pの基盤に差し替えま す。次のようにshutdown commandで電源が自動で切れます。もしくは、電源 button長押しでも電源offできます。
# shutdown -p now