发新话题
打印

Boot-Related Questions

Boot-Related Questions

什么是单用户模式?为什么和怎么来使用它?

定义:单用户模式是当我们启动kernel后只在console运行一个shell的模式.如果你启动到这个模式,那么就root文件系统被装载,并且是只读状态.这样的模式下,我们通常做下面的事情;

    fsck 你的有可能有问题的文件系统
    编辑/etc中坏的配置文件
    安装一些程序(你自己下载的,或者编译的)
    备分你的文件系统,而不用担心用户进程的打扰
当你系统正常状态下, 你可以运行shutdown now来进入单用户模式,或者启动的时候加入-s参数.

当进入单用户模式下,下面的命令很有用:
    fsck -p; mount -va
    检查文件系统,并重新装载他们
    set -E
    激活命令行编辑功能
    TERM=vt220; export TERM
    设定并输出TERM变量,这样一些编辑器比如vi就可以正常工作.注意,也许你需要使用不同的terminal,取决于你的console风格.
    sh /etc/rc.d/network start
    激活网络培植,如果你有nfs文件系统需要装载,你就在fsck和mount前这样做.如果你的系统是netbsd1.5以前的版本,你可以这样激活
    sh /etc/netstat
   
怎样从单用户模式进入多用户模式:

    退出当前的shell(使用exit命令,或者ctrl-D
    系统将启动到多用户模式,运行各种服务,等;注意当切换的时候,磁盘并没有被强制检查.


怎样阅读启动信息?

    系统信息可以通过dmesg命令查看.通常这些信息保存在/var/run/dmesg.boot(当机器启动后,立即保存),如果你激活了kernfs文件系统,你也可以通过more /kern/msgbuf查看启动信息.

怎样关闭机器?

    切换到单用户模式,使用shutdown now,暂停机器使用shutdwon -h now.在一些平台上,你可以使用shutdown -p now来关闭机器电源.请参考shutdown 的manpage.

怎样重起机器?
   
    使用shutdown -r now或者reboot.参考手册

机器启动时启动一个程序?

    我们可以将启动程序加入到/etc/rc.local,这样当系统启动完毕后将执行这些程序.

特别的,作为一般用户非root,可以使用cron来启动程序(前提是cron在运行).



Memory/Swap Configuration

需要多少swap空间才合适呢?

    在旧的unix系统中一般是ram的2倍.因为内存里active pages要被分配到swap中,有效的限制最高虚拟内存的大小.在netbsd中不必如此,所以最高虚拟内存大约是swap+ram

    在netbsd系统中,swap有3个主要的用处:

        1,额外的虚拟内存
        少量的active page(那些包含改变数据的页面)被转移到swap中,这样使得虚拟内存可以比实际内存大.
        2,kernel core
        可以参考savecore.这个时候需要swap比ram稍大点.
        3,mfs文件系统
        典型的,/tmp被以mfs文件系统装载为swap,这样大部分使用/tmp的程序将被提高运行速度
        fstab中:    swap  /tmp  mfs  rw,-s=SIZE 0 0
        这里size是512byte的块,需要的大小从系统使用的swap中取得.

    合适(correct)的swap大小取决于系统的使用情况,单一些基本的规律是:

        1,基本大小应该比ram大或者至少32mB,如果使用mfs文件系统得增加
        2,如果你要运行X,应该比ram大1/2或者大16MB
        3,尽量将swap分布到许多磁盘以便提高swap带宽.
        4,尽量高,而不是尽量少--因为如果swap用完,系统不的不杀死正在运行的进程.

为运行着的系统增加swap

    系统应该被分配了足够的swap,参考上面的章节.

    这里有3种方法:

        1,重建系统磁盘,使用更大的swap
        无可置疑这个是最彻底的解决方法,明显的是会造成破坏.
        2,增加一个swap分区

        当你新加以个磁盘的时候,一个好的做法是做以个小的b分区为swap,并加入到fstab
            /dev/DISKb       none    swap sw 0 0
        3,创建一个swap文件
        最快和最简单的方法是在文件系统上创建一个swap文件,将它作为额外的swap.当然速度比不上一个swap分区了(由于碎片和上面的文件系统),但是这是个解决swap不足的临时方法.
        
        在一个有足够空余空间的文件系统上创建一个10MB的swap文件是轻而易举的事情:

            # dd if=/dev/zero bs=1m count=10 of=/somefilesystem/swap
            # chmod 600 /somefilesystem/swap
            # swapctl -a -p 1 /somefilesystem/swap
        这个swap文件需要600权限,以便拒绝那些没有权限的用户访问那些可读文件.swapctl命令将 /somefilesystem/swap的优先级设为1.优先级0表示高优先级(默认),由于swap 文件的效率比不上swap分区,当然我们的降低它的优先级了。
        
        修改fstab
            /somefilesystem/swap none swap sw,priority=1 0 0


在低内存的机器上调整虚拟内存,提高系统效率

    比如    sysctl -w vm.anonmax=95
        这个变化意味着:被各种内存分配使用的物理内存的百分之多少将被重新声明用来存储anonymous程序数据.

其他各种问题

在netbsd编辑文件

    ed,行编辑器
    (译者,和sed以及vi的命令模式差不多)

    vi,全屏编辑器
    (译者,不用说了吧)

    还有很多编辑器

    editors/joe
    editors/pico
    editors/nedit
    editors/emacs

重建/dev

    /dev目录包含系统需要的硬件设备和伪设备,如果被损坏,会发生很多奇怪的事情.

    要重建它,切换到单用户模式:

    mkdir /newdev
    cd /newdev
    cp /dev/M* .
    sh MAKEDEV all
    cd /
    mv dev olddev; mv newdev dev
    rm -r olddeV


连接ups到netbsd系统

    (好繁杂.等下翻译)

当修改/etc/motd后,它又变回原样了(啊?)

    你即使删除/etc/motd,下此启动仍然恢复到原样.你可以在/etc/rc.conf加入
            update-motd=NO
    这样你的修改就不会被系统恢复了.


那里在卖兼容netbsd的硬件

   
    请订阅    netbsd-forsale@mono.org

Setting up a striped (ccd) drive
    Disk striping can either be done with RAIDframe or ccd(4) in NetBSD. Here is how to use ccd(4):

       1. disklabel all disks:

          create the partitions you want to concatenate, make sure there's an offset to the beginning (I think 16 sectors is more than enough - but I'm not sure). I don't know if the type matters, I've used "normal" 4.2BSD partitions.
       2. configure the ccd.

          For performance tuning you will have to experiment a little to find the best interleave. 48 works fine for me with two disks. AFAIK with 16 and some other numbers it can happen that all inodes will be on the same disk, which should be avoided for performance reasons. IIRC I got some problems, if the number of sectors of an component is not a multiple of the interleave.
       3. disklabel the ccd as you would do with a normal harddisk
       4. newfs the ccd.
       5. mount it.

TOP

发新话题