NetBSD お試しパックの概要 Edit

  • はじめに
    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サーバ機能付ルーター等

セットアップ&起動 Edit

  • landiskへtelnetログイン後、rootになり、お試しパックを展開します。

    # 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
    
  • 2.6.13 カーネルから起動する場合
    kexecを使用してNetBSDカーネルをブートすることができます。
    まず、kexec-tools を apt-get して kexec コマンドをインストールします。
    landisk:~netbsd-otameshi# apt-get install kexec-tools
    
    そして、次のように minirootイメージとカーネルを指定して kexec コマンドを実行すればOKです。
    landisk:~netbsd-otameshi# kexec --miniroot=miniroot.img netbsd-RAMDISK
    
  • 2.4 カーネルから起動する場合(LANDISKオリジナル環境)
    同封するSH-Linux Kernel Switchr(kernelsw.pl)を使用してブート可能です。
    まず、Kenelsw.plを使用してNetBSDイメージを読み込み、
    # ./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な理由はファイルシステムが壊れるのを防止するためです。
    # 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 Edit

  • telnet接続
    DHCPサーバから割り当てられたIPアドレスでtelnetdが待機しているはずなので、
    そのIPアドレスで接続を試みます。
    NetBSD/landisk (netbsd) (ttyp0)
    
    login: 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に対応するので、
      netbsd:~# mount /dev/wd0g /mnt
      
    • LANDISKの/dev/hda2をスワップとして使用したければ、
      netbsd:~# swapon /dev/wd0f
      
    • chroot
      /dev/hda3のある特定ディレクトリへNetBSDのファイルシステムを構築してchrootするのも良いかも。

  • 補足 … RAMDISKの使用状況
    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:~#
    
  • 補足 … 搭載コマンド一覧
    [                 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
    

コメント欄 Edit

何かありましたら、どうぞ。

付録 … miniroot.imgの作り方メモ Edit

  • 空のRAMDISKイメージを作成
    #!/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 内にファイルシステムを構築
    省略

  • アンマウント
    netbsd# umount fs
    netbsd# vnconfig -u /dev/vnd0d
    

  • ちなみに既存のminiroot.img の中身の確認/変更を行うには、
    netbsd# vncconfig -v -c /dev/vnd0 miniroot.img
    netbsd# mount /dev/vnd0a fs
    netbsd# cd fs
    



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-12 (日) 11:29:18 (4978d)