<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>花开的地方 &#187; FreeBSD</title>
	<atom:link href="http://www.bsdmap.com/tag/freebsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bsdmap.com</link>
	<description>花开，没有声音……</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:39:21 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19814</generator>
		<item>
		<title>几个性能工具备忘</title>
		<link>http://www.bsdmap.com/2008/09/17/man-top/</link>
		<comments>http://www.bsdmap.com/2008/09/17/man-top/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 13:45:12 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SHELL]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[iostat]]></category>
		<category><![CDATA[man top]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[vmstat]]></category>

		<guid isPermaLink="false">http://www.bsdmap.com/?p=629</guid>
		<description><![CDATA[top: * A: PID        = Process Id * E: USER       = User Name * H: PR         = Priority * I: NI         = Nice value * O: VIRT       = Virtual Image (kb) * Q: RES        = Resident size (kb) * T: SHR        = Shared Mem size (kb) * W: S          = Process Status * K: %CPU       [...]]]></description>
			<content:encoded><![CDATA[<p><strong>top:</strong></p>
<p>* A: PID        = Process Id<br />
* E: USER       = User Name<br />
* H: PR         = Priority<br />
* I: NI         = Nice value<br />
* O: VIRT       = Virtual Image (kb)<br />
* Q: RES        = Resident size (kb)<br />
* T: SHR        = Shared Mem size (kb)<br />
* W: S          = Process Status<br />
* K: %CPU       = CPU usage<br />
* N: %MEM       = Memory usage (RES)<br />
* M: TIME+      = CPU Time, hundredths<br />
b: PPID       = Parent Process Pid<br />
c: RUSER      = Real user name<br />
d: UID        = User Id<br />
f: GROUP      = Group Name<br />
g: TTY        = Controlling Tty<br />
j: P          = Last used cpu (SMP)<br />
p: SWAP       = Swapped size (kb)<br />
l: TIME       = CPU Time<br />
r: CODE       = Code size (kb)<br />
s: DATA       = Data+Stack size (kb)<br />
u: nFLT       = Page Fault count<br />
v: nDRT       = Dirty Pages count<br />
y: WCHAN      = Sleeping in Function<br />
z: Flags      = Task Flags &lt;sched.h&gt;<br />
* X: COMMAND    = Command name/line</p>
<p>Flags field:<br />
0&#215;00000001  PF_ALIGNWARN<br />
0&#215;00000002  PF_STARTING<br />
0&#215;00000004  PF_EXITING<br />
0&#215;00000040  PF_FORKNOEXEC<br />
0&#215;00000100  PF_SUPERPRIV<br />
0&#215;00000200  PF_DUMPCORE<br />
0&#215;00000400  PF_SIGNALED<br />
0&#215;00000800  PF_MEMALLOC<br />
0&#215;00002000  PF_FREE_PAGES (2.5)<br />
0&#215;00008000  debug flag (2.5)<br />
0&#215;00024000  special threads (2.5)<br />
0x001D0000  special states (2.5)<br />
0&#215;00100000  PF_USEDFPU (thru 2.4)</p>
<p>进程的优先级和nice级别<br />
进程优先级是一个决定进程被CPU执行优先顺序的参数，内核会根据需要调整这个值。Nice值是一个对优先权的限制。进程优先级的值不能低于nice值。（nice值越低优先级越高）<br />
进程优先级是无法去手动改变的，只有通过改变nice值去间接的调整进程优先级。如果一个进程运行的太慢了，你可以通过指定一个较低的nice值去为它分配更多的CPU资源。当然，这意味着其他的一些进程将被分配更少的CPU资源，运行更慢一些。Linux支持nice值的范围是19（低优先级）到-20（高优先级），默认的值是0。如果需要改变一个进程的nice值为负数（高优先级），必须使用su命令登陆到root用户。下面是一些调整nice值的命令示例，<br />
以nice值-5开始程序xyz<br />
#nice –n -5 xyz</p>
<p>改变已经运行的程序的nice值<br />
#renice level pid</p>
<p>将pid为2500的进程的nice值改为10<br />
#renice 10 2500</p>
<p><strong>vmstat:</strong></p>
<p>·process（procs）<br />
r：等待运行时间的进程数量<br />
b：处在不可中断睡眠状态的进程<br />
w：被交换出去但是仍然可以运行的进程，这个值是计算出来的<br />
·memoryswpd：虚拟内存的数量<br />
free：空闲内存的数量<br />
buff：用做缓冲区的内存数量<br />
·swap<br />
si：从硬盘交换来的数量<br />
so：交换到硬盘去的数量<br />
·IO<br />
bi：向一个块设备输出的块数量<br />
bo：从一个块设备接受的块数量<br />
·system<br />
in：每秒发生的中断数量， 包括时钟<br />
cs：每秒发生的context switches的数量<br />
·cpu(整个cpu运行时间的百分比)<br />
us：非内核代码运行的时间（用户时间，包括nice时间）<br />
sy：内核代码运行的时间（系统时间）<br />
id：空闲时间，在Linux 2.5.41之前的内核版本中，这个值包括I/O等待时间；<br />
wa：等待I/O操作的时间，在Linux 2.5.41之前的内核版本中这个值为0</p>
<p><strong>iostat:</strong></p>
<p>%user：user level（应用）的CPU占用率情况<br />
%nice：加入nice优先级的user level的CPU占用率情况<br />
%sys：system level（内核）的CPU占用情况<br />
%idle：空闲的CPU资源情况</p>
<p>Device：块设备名<br />
Tps：设备每秒进行传输的数量（每秒的I/O请求）。多个单独的I/O请求可以被组成一个传输操作，因为一个传输操作可以是不同的容量。<br />
Blk_read/s, Blk_wrtn/s：该设备每秒读写的块的数量。块可能为不同的容量。<br />
Blk_read, Blk_wrtn：自系统启动以来读写的块设备的总量。</p>
<p>块可能为不同的容量。块的大小一般为1024、2048、4048byte。可通过tune2fs或dumpe2fs获得：<br />
# tune2fs -l /dev/hda1|grep &#8216;Block size&#8217;<br />
Block size:               4096<br />
# dumpe2fs -h /dev/hda1|grep &#8216;Block size&#8217;<br />
dumpe2fs 1.35 (28-Feb-2004)<br />
Block size:               4096</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2008/09/17/man-top/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>对缓存的新认识</title>
		<link>http://www.bsdmap.com/2008/07/01/%e5%af%b9%e7%bc%93%e5%ad%98%e7%9a%84%e6%96%b0%e8%ae%a4%e8%af%86/</link>
		<comments>http://www.bsdmap.com/2008/07/01/%e5%af%b9%e7%bc%93%e5%ad%98%e7%9a%84%e6%96%b0%e8%ae%a4%e8%af%86/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 08:57:12 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cache]]></category>

		<guid isPermaLink="false">http://www.bsdmap.com/~nnix/?p=278</guid>
		<description><![CDATA[这个是FaceBook的应用构架，没什么好说的。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bsdmap.com/~nnix/wp-content/uploads/2008/07/facebook_cache_level.png"><img class="alignnone size-medium wp-image-279" title="facebook_cache_level" src="http://www.bsdmap.com/~nnix/wp-content/uploads/2008/07/facebook_cache_level-300x254.png" alt="" width="300" height="254" /></a></p>
<p>这个是FaceBook的应用构架，没什么好说的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2008/07/01/%e5%af%b9%e7%bc%93%e5%ad%98%e7%9a%84%e6%96%b0%e8%ae%a4%e8%af%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell PowerEdge 860 安装Debian GNU/Linux 4.0 (i386) 时使用LVM遇到Waiting for root filesystem</title>
		<link>http://www.bsdmap.com/2007/12/26/pe860-debian40/</link>
		<comments>http://www.bsdmap.com/2007/12/26/pe860-debian40/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 08:25:35 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[PowerEdge 860]]></category>
		<category><![CDATA[Waiting for root filesystem]]></category>

		<guid isPermaLink="false">http://www.bsdmap.com/~nnix/2007/12/26/dell-poweredge-860-%e5%ae%89%e8%a3%85debian-gnulinux-40-i386-%e6%97%b6lvm%e4%b8%8d%e7%a8%b3%e5%ae%9a/</guid>
		<description><![CDATA[　　Dell PowerEdge 860 安装Debian GNU/Linux 4.0 (i386) 时，我使用了LVM，结果在重启的过程中遇到了找不到卷组，Waiting for root filesystem的提示。不排除是我这台设备的问题。由于时间关系，我没有在其它同型号设备上做LVM安装。 我现在就在机房安装PE860，发现重启的时候偶尔会遇到LVM不工作，提示找不到vg0（卷组)。实际上是遇到了两次，第一次还以为是安装问题，第二次又出现，就有些担心了，于是不敢在这台设备上使用LVM。不得不再重装一次。 补充，貌似不是LVM的问题，在安装第二台的时候，没有使用LVM，但在重启之后，也出现了一次Waiting for root filesystem…… 找到一篇全英的文章： 大致的解决办法是，假如真的完全进入不了系统（我还是比较幸运的，只是偶尔进不去系统），可以用急救盘启动，然后 chroot /mnt/debian /bin/bash apt-get upgade apt-get install udev]]></description>
			<content:encoded><![CDATA[<p>　　Dell PowerEdge 860 安装Debian GNU/Linux 4.0 (i386) 时，我使用了LVM，结果在重启的过程中遇到了找不到卷组，Waiting for root filesystem的提示。不排除是我这台设备的问题。由于时间关系，我没有在其它同型号设备上做LVM安装。</p>
<p>我现在就在机房安装PE860，发现重启的时候偶尔会遇到LVM不工作，提示找不到vg0（卷组)。实际上是遇到了两次，第一次还以为是安装问题，第二次又出现，就有些担心了，于是不敢在这台设备上使用LVM。不得不再重装一次。</p>
<p>补充，貌似不是LVM的问题，在安装第二台的时候，没有使用LVM，但在重启之后，也出现了一次Waiting for root filesystem……</p>
<p>找到一篇全英的文章：</p>
<p>大致的解决办法是，假如真的完全进入不了系统（我还是比较幸运的，只是偶尔进不去系统），可以用急救盘启动，然后</p>
<p>chroot /mnt/debian /bin/bash</p>
<p>apt-get upgade</p>
<p>apt-get install udev</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2007/12/26/pe860-debian40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>避免掉线而使任务中断的技巧</title>
		<link>http://www.bsdmap.com/2007/11/21/%e9%81%bf%e5%85%8d%e6%8e%89%e7%ba%bf%e8%80%8c%e4%bd%bf%e4%bb%bb%e5%8a%a1%e4%b8%ad%e6%96%ad%e7%9a%84%e6%8a%80%e6%9c%af/</link>
		<comments>http://www.bsdmap.com/2007/11/21/%e9%81%bf%e5%85%8d%e6%8e%89%e7%ba%bf%e8%80%8c%e4%bd%bf%e4%bb%bb%e5%8a%a1%e4%b8%ad%e6%96%ad%e7%9a%84%e6%8a%80%e6%9c%af/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 17:21:39 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://bsdmap.org/~nix/2007/11/21/%e9%81%bf%e5%85%8d%e6%8e%89%e7%ba%bf%e8%80%8c%e4%bd%bf%e4%bb%bb%e5%8a%a1%e4%b8%ad%e6%96%ad%e7%9a%84%e6%8a%80%e6%9c%af/</guid>
		<description><![CDATA[使用环境：UNIX平台 （Linux） 使用screen： 　　在执行可能会花费时间较长的任务时，可能我们要中断网络连接而去干别的事儿，或者网络环境不太好的地方，网络会意外中断，使用screen命令，可以使网络、终端意外断开时，可重新连接至screen程序。 其中，Ctrl+a ,0/1/2　切换screen窗口 Ctrl+a,d 分离screen窗口 screent -list  查看当前用户的screen窗口有哪些 BBC-FILER-02 01:19:48 ~ # screen -list There is a screen on:         17486.pts-0.BBC-FILER-02        (Detached) 1 Socket in /tmp/screens/S-root. 重新连接至已经存在的窗口：screen -r 若有多个窗口，需要指点pid，screen -r 17486 有时screen意外断线时状态为：attached 这时无法重新连接到screen窗口，可以使用screen -D 命令分离之，然后再使用-r参数连接。]]></description>
			<content:encoded><![CDATA[<p>使用环境：UNIX平台 （Linux）</p>
<p>使用screen：<br />
　　在执行可能会花费时间较长的任务时，可能我们要中断网络连接而去干别的事儿，或者网络环境不太好的地方，网络会意外中断，使用screen命令，可以使网络、终端意外断开时，可重新连接至screen程序。</p>
<p>其中，Ctrl+a ,0/1/2　切换screen窗口<br />
Ctrl+a,d 分离screen窗口<br />
screent -list  查看当前用户的screen窗口有哪些<br />
BBC-FILER-02 01:19:48 ~ # screen -list<br />
There is a screen on:<br />
        17486.pts-0.BBC-FILER-02        (Detached)<br />
1 Socket in /tmp/screens/S-root.</p>
<p>重新连接至已经存在的窗口：screen -r<br />
若有多个窗口，需要指点pid，screen -r 17486</p>
<p>有时screen意外断线时状态为：attached<br />
这时无法重新连接到screen窗口，可以使用screen -D 命令分离之，然后再使用-r参数连接。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2007/11/21/%e9%81%bf%e5%85%8d%e6%8e%89%e7%ba%bf%e8%80%8c%e4%bd%bf%e4%bb%bb%e5%8a%a1%e4%b8%ad%e6%96%ad%e7%9a%84%e6%8a%80%e6%9c%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用串口访问FreeBSD/Linux系统</title>
		<link>http://www.bsdmap.com/2006/04/07/%e4%bd%bf%e7%94%a8%e4%b8%b2%e5%8f%a3%e8%ae%bf%e9%97%aefreebsdlinux%e7%b3%bb%e7%bb%9f/</link>
		<comments>http://www.bsdmap.com/2006/04/07/%e4%bd%bf%e7%94%a8%e4%b8%b2%e5%8f%a3%e8%ae%bf%e9%97%aefreebsdlinux%e7%b3%bb%e7%bb%9f/#comments</comments>
		<pubDate>Fri, 07 Apr 2006 09:27:07 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://bsdmap.org/~nix/2006/04/07/%e4%bd%bf%e7%94%a8%e4%b8%b2%e5%8f%a3%e8%ae%bf%e9%97%aefreebsdlinux%e7%b3%bb%e7%bb%9f/</guid>
		<description><![CDATA[　　最近热衷于使用串口登录系统，这样就不用在需要调试系统的时候为系统连接显示器和键盘了。   　　FreeBSD中的串口通信，可以阅读它的手册，下面的地址是中文手册中的串口通信部分，可以仔细阅读它。 　　http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/serialcomms.html 　　以下为引用： 　　在FreeBSD中，您可以通过 /dev 目录中的一个记录来访问每个串行端口。有两种不同的记录： 　　呼入端口被命名为/dev/ttydN， 这里 N 是端口号，从零开始。 通常，您使用呼入端口作为终端。呼入端口要求数据线使用载波检测 (DCD) 信号来工作。 　　呼出端口被命名为 /dev/cuadN。 您通常不使用呼出端口作为终端， 只使用modem。如果串行线或终端不支持载波检测数据传输， 您可以使用呼出端口。   注意: 在 FreeBSD 5.X 和更早版本中， 呼出端口的名字是 /dev/cuaaN。   　　如果您已经连接一个终端到第一个串行端口 (在 MS-DOS® 上是COM1)， 则可以使用 /dev/ttyd0 来作为终端。 如果它是在第二个串行端口 (COM2)， 那就是 /dev/ttyd1，等等。   　　引用完毕。   　　简单地来说，使用串口访问FreeBSD需要修改FreeBSD的配置文件/etc/ttys，我现在使用的版本是5.4的，找到 # Serial terminals # The &#8216;dialup&#8217;keyword identifiles dialin lines to login, [...]]]></description>
			<content:encoded><![CDATA[<p>　　最近热衷于使用串口登录系统，这样就不用在需要调试系统的时候为系统连接显示器和键盘了。<br />
 <br />
　　FreeBSD中的串口通信，可以阅读它的手册，下面的地址是中文手册中的串口通信部分，可以仔细阅读它。<br />
　　<a href="http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/serialcomms.html">http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/serialcomms.html</a><br />
　　以下为引用：<br />
　　在FreeBSD中，您可以通过 /dev 目录中的一个记录来访问每个串行端口。有两种不同的记录：<br />
　　呼入端口被命名为/dev/ttydN， 这里 N 是端口号，从零开始。 通常，您使用呼入端口作为终端。呼入端口要求数据线使用载波检测 (DCD) 信号来工作。<br />
　　呼出端口被命名为 /dev/cuadN。 您通常不使用呼出端口作为终端， 只使用modem。如果串行线或终端不支持载波检测数据传输， 您可以使用呼出端口。<br />
 <br />
注意: 在 FreeBSD 5.X 和更早版本中， 呼出端口的名字是 /dev/cuaaN。<br />
 <br />
　　如果您已经连接一个终端到第一个串行端口 (在 MS-DOS® 上是COM1)， 则可以使用 /dev/ttyd0 来作为终端。 如果它是在第二个串行端口 (COM2)， 那就是 /dev/ttyd1，等等。<br />
 <br />
　　引用完毕。<br />
 <br />
　　简单地来说，使用串口访问FreeBSD需要修改FreeBSD的配置文件/etc/ttys，我现在使用的版本是5.4的，找到<br />
# Serial terminals<br />
# The &#8216;dialup&#8217;keyword identifiles dialin lines to login, fingerd etc.<br />
ttyd0  &#8220;/usr/libexec/getty std.9600&#8243;        dialup    off     secure<br />
ttyd1  &#8220;/usr/libexec/getty std.9600&#8243;        dialup    off     secure<br />
ttyd2  &#8220;/usr/libexec/getty std.9600&#8243;        dialup    off     secure<br />
ttyd3  &#8220;/usr/libexec/getty std.9600&#8243;        dialup    off     secure<br />
……<br />
 <br />
将ttyd0行如下修改：<br />
ttyd0   &#8220;/usr/libexec/getty std.38400&#8243;      vt100    on     secure<br />
 <br />
然后让init 进程重新读取一下配置文件：<br />
#kill -HUP1<br />
 <br />
使用命令：ps aux |grep getty 来查看是否运行<br />
输出中包含<br />
root  24331  0.0  0.1  1288   800  d0  Is+   8:26PM   0:00.00 /usr/libexec/getty std.38400 ttyd0<br />
表示ttyd0上已经有getty程序在监听。<br />
 <br />
然后，就可以使用串口线连接到服务器的COM1口，将波特率设置成38400，进行连接测试。需要说明的是：<br />
 <br />
　　引用：<br />
　　如果 getty 进程确实在运行，但终端上仍然没有显示出登录提示， 或者虽然显示了单缺不允许您输入，您的终端或电缆可能不支持硬件握手。请尝试将 /etc/ttys 中的 std.38400 改为 3wire.38400 并一定能够记得在改完 /etc/ttys 之后 kill -HUP 1)。 3wire 记录和 std 类似，但忽略硬件握手。 您可能需要在使用 3wire 时减少波特率或启用软件流控制以避免缓冲区溢出。<br />
　　我的是HP DL380 G3的服务器，FreeBSD 5.4的系统，Cisco自带的串口线，和一个RJ-45到RS-232转换器，我的设置是这样的：<br />
ttyd0   &#8220;/usr/libexec/getty 3wire.38400&#8243;      vt100    on     secure<br />
 <br />
　　当是std.38400时无法正常通信。<br />
 <br />
　　下面谈Linux系统。<br />
　　在Linux系统中，让串口上运行监听程序比在FreeBSD中在容易的多。<br />
　　大部分Linux发行版，在配置文件/etc/inittab中都已经包含了串口的getty配置信息，形似：<br />
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100<br />
只不过默认是注释掉的，把前面的“#”去掉，然后执行一下kill -HUP 1，ps aux |grep getty查看一下是否已经在运行，就可以了。可以看到，Linux中与FreeBSD中的串口设备命名是不一样的，不再赘述。<br />
 <br />
　　建议把9600改成38400，这样操作起来就真得跟插上显示器键盘操作的感觉相似了。<br />
 <br />
　　最后：<br />
 <br />
　　这种使用串口访问系统方式，只有在getty程序运行在串口的时候才能正常使用，就是说系统必然是正常在运行的，尽管可能网络不通。假如出现文件系统损坏需要修复的情况，串口就不能访问了，为了使串口在这种情况下也能使用，在Linux 中，可以在内核启动参数(kenel一行）中加入console=ttyS0,38400 ，这样会把内核console定义到ttyS0（COM1)上去。<br />
　　不用困惑，试一下就明白了，其实上目前流行的服务器像HP DL380 G4等都支持串口，就是说系统启动，硬件POST自检的时候，串口上都有输出，而且可以互动操作。但是不要误以为终端屏幕（VT100)上所有的显示都会跟显示器(console)一样，Linux的话，从内核开始解压开始，终端上就没有任何信息了，除非内核接收到了console=ttyS0这样的参数，否则，串口会一直到系统启动完毕，才会在终端上显示login信息。<br />
　　FreeBSD也可以让内核信息显示在串口上，甚至还可以在没有显示器，没有键盘的情况下从串口安装系统。这个在上面给出的FreeBSD手册串中通信中有详细的说明，没有我还没有用过，就不写了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2006/04/07/%e4%bd%bf%e7%94%a8%e4%b8%b2%e5%8f%a3%e8%ae%bf%e9%97%aefreebsdlinux%e7%b3%bb%e7%bb%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用rsync对网站进行镜像备份</title>
		<link>http://www.bsdmap.com/2005/10/01/%e7%94%a8rsync%e5%af%b9%e7%bd%91%e7%ab%99%e8%bf%9b%e8%a1%8c%e9%95%9c%e5%83%8f%e5%a4%87%e4%bb%bd/</link>
		<comments>http://www.bsdmap.com/2005/10/01/%e7%94%a8rsync%e5%af%b9%e7%bd%91%e7%ab%99%e8%bf%9b%e8%a1%8c%e9%95%9c%e5%83%8f%e5%a4%87%e4%bb%bd/#comments</comments>
		<pubDate>Sat, 01 Oct 2005 15:51:22 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenBSD]]></category>

		<guid isPermaLink="false">http://bsdmap.org/~nix/2005/10/01/%e7%94%a8rsync%e5%af%b9%e7%bd%91%e7%ab%99%e8%bf%9b%e8%a1%8c%e9%95%9c%e5%83%8f%e5%a4%87%e4%bb%bd/</guid>
		<description><![CDATA[by inburst&#60;inburst@263.net&#62; http://xfocus.org 　　对系统管理员来说，平时的工作重心应该集中在维护系统正常运转，能够正常提供服务上，这里往往牵涉到一个数据备份的问题，在我所了解的情况中，有80% 的系统管理员不是太关心自己服务器的安全性，但往往对备分镜像的技术相当感兴趣，但由于商业产品的软硬件价格都相当高昂，因此往往会选择自由软件。这里准备介绍的rsync就是这样的软件，它可以满足绝大多数要求不是特别高的备份需求。 一、特性简介 rsync是类unix系统下的数据镜像备份工具，从软件的命名上就可以看出来了——remote sync。它的特性如下： 1、可以镜像保存整个目录树和文件系统。 2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。 3、无须特殊权限即可安装。 4、优化的流程，文件传输效率高。 5、可以使用rcp、ssh等方式来传输文件，当然也可以通过直接的socket连接。 6、支持匿名传输。 二、使用方法 rsync的使用方法很简单，我就举自己使用的例子来说明吧。 1、系统环境 rsync支持大多数的类unix系统，无论是Linux、Solaris还是BSD上都经过了良好的测试。我的系统环境为： server: FreeBSD 4.3  ip: 192.168.168.52 client: Solaris 8    ip: 192.168.168.137 rsync 版本 2.4.6(可以从http://rsync.samba.org/rsync/获得最新版本) 2、配置server端的/etc/rsyncd.conf文件 bash-2.03# cat /etc/rsyncd.conf uid = nobody gid = nobody use chroot = no         # 不使用chroot max connections = 4         # 最大连接数为4 pid file [...]]]></description>
			<content:encoded><![CDATA[<p>by inburst&lt;<a href="mailto:inburst@263.net">inburst@263.net</a>&gt;<br />
<a href="http://xfocus.org/">http://xfocus.org</a></p>
<p>　　对系统管理员来说，平时的工作重心应该集中在维护系统正常运转，能够正常提供服务上，这里往往牵涉到一个数据备份的问题，在我所了解的情况中，有80% 的系统管理员不是太关心自己服务器的安全性，但往往对备分镜像的技术相当感兴趣，但由于商业产品的软硬件价格都相当高昂，因此往往会选择自由软件。这里准备介绍的rsync就是这样的软件，它可以满足绝大多数要求不是特别高的备份需求。</p>
<p>一、特性简介</p>
<p>rsync是类unix系统下的数据镜像备份工具，从软件的命名上就可以看出来了——remote sync。它的特性如下：</p>
<p>1、可以镜像保存整个目录树和文件系统。<br />
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。<br />
3、无须特殊权限即可安装。<br />
4、优化的流程，文件传输效率高。<br />
5、可以使用rcp、ssh等方式来传输文件，当然也可以通过直接的socket连接。<br />
6、支持匿名传输。</p>
<p>二、使用方法</p>
<p>rsync的使用方法很简单，我就举自己使用的例子来说明吧。</p>
<p>1、系统环境</p>
<p>rsync支持大多数的类unix系统，无论是Linux、Solaris还是BSD上都经过了良好的测试。我的系统环境为：</p>
<p>server: FreeBSD 4.3  ip: 192.168.168.52<br />
client: Solaris 8    ip: 192.168.168.137<br />
rsync 版本 2.4.6(可以从<a href="http://rsync.samba.org/rsync/">http://rsync.samba.org/rsync/</a>获得最新版本)</p>
<p>2、配置server端的/etc/rsyncd.conf文件</p>
<p>bash-2.03# cat /etc/rsyncd.conf</p>
<p>uid = nobody<br />
gid = nobody<br />
use chroot = no         # 不使用chroot<br />
max connections = 4         # 最大连接数为4<br />
pid file = /var/run/rsyncd.pid<br />
lock file = /var/run/rsync.lock<br />
log file = /var/log/rsyncd.log    # 日志记录文件</p>
<p>[inburst]            # 这里是认证的模块名，在client端需要指定<br />
path = /home/inburst/python/    # 需要做镜像的目录<br />
comment = BACKUP CLIENT IS SOLARIS 8 E250<br />
ignore errors            # 可以忽略一些无关的IO错误<br />
read only = yes            # 只读<br />
list = no            # 不允许列文件<br />
auth users = inburst        # 认证的用户名，如果没有这行，则表明是匿名<br />
secrets file = /etc/inburst.pas    # 认证文件名</p>
<p>[web]<br />
path = /usr/local/apache/htdocs/<br />
comment = inburst.org web server</p>
<p>3、在server端生成一个密码文件/etc/inburst.pas</p>
<p>bash-2.03# cat /etc/inburst.pas<br />
inburst:hack</p>
<p>出于安全目的，文件的属性必需是只有属主可读。</p>
<p>4、在server端将rsync以守护进程形式启动</p>
<p>bash-2.03# rsync &#8211;daemon</p>
<p>如果要在启动时把服务起来，有几种不同的方法，比如：</p>
<p>  a、加入inetd.conf</p>
<p>    编辑/etc/services，加入rsync   873/tcp，指定rsync的服务端口是873<br />
    编加/etc/inetd.conf，加入rsync  stream  tcp   nowait  root  /bin/rsync rsync &#8211;daemon</p>
<p>  b、加入rc.local</p>
<p>    在各种操作系统中，rc文件存放位置不尽相同，可以修改使系统启动时rsync &#8211;daemon加载进去。</p>
<p>5、从client端进行测试</p>
<p>　　下面这个命令行中-vzrtopg里的v是verbose，z是压缩，r是recursive，topg都是保持文件原有属性如属主、时间的参数。&#8211; progress是指显示出详细的进度情况，&#8211;delete是指如果服务器端删除了这一文件，那么客户端也相应把文件删除，保持真正的一致。后面的<a href="mailto:inburst@ip">inburst@ip</a>中，inburst是指定密码文件中的用户名，之后的::inburst这一inburst是模块名，也就是在/etc/rsyncd.conf中自定义的名称。最后的/tmp是备份到本地的目录名。</p>
<p>　　在这里面，还可以用-e ssh的参数建立起加密的连接。可以用&#8211;password-file=/password/path/file来指定密码文件，这样就可以在脚本中使用而无需交互式地输入验证密码了，这里需要注意的是这份密码文件权限属性要设得只有属主可读。</p>
<p>bash-2.03# rsync -vzrtopg &#8211;progress &#8211;delete <a href="mailto:inburst@192.168.168.52::inburst">inburst@192.168.168.52::inburst</a> /tmp/<br />
Password:<br />
receiving file list &#8230; done<br />
./<br />
1<br />
785 (100%)<br />
1.py<br />
4086 (100%)<br />
2.py<br />
10680 (100%)<br />
a<br />
0 (100%)<br />
ip<br />
3956 (100%)<br />
./<br />
wrote 190 bytes  read 5499 bytes  758.53 bytes/sec<br />
total size is 19507  speedup is 3.43</p>
<p>6、创建更新脚本</p>
<p>如果有比较复杂的工作，利用一些常见的脚本语言可以有帮助。比如：</p>
<p>bash-2.03# cat /usr/local/bin/rsync.sh</p>
<p>#!/bin/sh<br />
DATE=`date +%w`</p>
<p>rsync -vzrtopg &#8211;progress &#8211;delete <a href="mailto:inburst@192.168.168.52::inburst">inburst@192.168.168.52::inburst</a> /home/quack/backup/$DATE &#8211;password-file=/etc/rsync.pass &gt;</p>
<p>/var/log/rsync.$DATE</p>
<p>7、修改/etc/crontab做好定时</p>
<p>比如:</p>
<p>bash-2.03# echo &#8220;15      4       *       *       6       root    rsync.sh&#8221;&gt;&gt;/etc/crontab</p>
<p>三、FAQ</p>
<p>Q：如何通过ssh进行rsync，而且无须输入密码？<br />
A：可以通过以下几个步骤</p>
<p>1. 通过ssh-keygen在server A上建立SSH keys，不要指定密码，你会在~/.ssh下看到identity和identity.pub文件<br />
2. 在server B上的home目录建立子目录.ssh<br />
3. 将A的identity.pub拷贝到server B上<br />
4. 将identity.pub加到~[user b]/.ssh/authorized_keys<br />
5. 于是server A上的A用户，可通过下面命令以用户B ssh到server B上了<br />
                e.g. ssh -l userB serverB<br />
这样就使server A上的用户A就可以ssh以用户B的身份无需密码登陆到server B上了。</p>
<p>Q：如何通过在不危害安全的情况下通过防火墙使用rsync?<br />
A：解答如下：</p>
<p>这通常有两种情况，一种是服务器在防火墙内，一种是服务器在防火墙外。<br />
无论哪种情况，通常还是使用ssh，这时最好新建一个备份用户，并且配置sshd仅允许这个用户通过RSA认证方式进入。<br />
如果服务器在防火墙内，则最好限定客户端的IP地址，拒绝其它所有连接。<br />
如果客户机在防火墙内，则可以简单允许防火墙打开TCP端口22的ssh外发连接就ok了。</p>
<p>Q：我能将更改过或者删除的文件也备份上来吗？<br />
A：当然可以：</p>
<p>你可以使用如：rsync -other -options -backupdir = ./backup-2000-2-13  &#8230;这样的命令来实现。<br />
这样如果源文件:/path/to/some/file.c改变了，那么旧的文件就会被移到./backup-2000-2-13/path/to/some/file.c，这里这个目录需要自己</p>
<p>手工建立起来</p>
<p>Q：我需要在防火墙上开放哪些端口以适应rsync？<br />
A：视情况而定</p>
<p>rsync可以直接通过873端口的tcp连接传文件，也可以通过22端口的ssh来进行文件传递，但你也可以通过下列命令改变它的端口：</p>
<p>rsync &#8211;port 8730 otherhost::<br />
或者<br />
rsync -e &#8216;ssh -p 2002&#8242; otherhost:</p>
<p>Q：我如何通过rsync只复制目录结构，忽略掉文件呢？<br />
A：rsync -av &#8211;include &#8216;*/&#8217;&#8211;exclude &#8216;*&#8217;source-dir dest-dir</p>
<p>Q：为什么我总会出现&#8221;Read-only file system&#8221;的错误呢？<br />
A：看看是否忘了设&#8221;read only = no&#8221;了</p>
<p>Q：为什么我会出现<a href="mailto:'@ERROR">&#8216;@ERROR</a>: invalid gid&#8217;的错误呢？<br />
A：rsync使用时默认是用uid=nobody;gid=nobody来运行的，如果你的系统不存在nobody组的话，就会出现这样的错误，可以试试gid =</p>
<p>nogroup或者其它</p>
<p>Q：绑定端口873失败是怎么回事？<br />
A：如果你不是以root权限运行这一守护进程的话，因为1024端口以下是特权端口，会出现这样的错误。你可以用&#8211;port参数来改变。</p>
<p>Q：为什么我认证失败？<br />
A：从你的命令行看来：</p>
<p>你用的是：<br />
&gt; bash$ rsync -a 144.16.251.213::test test<br />
&gt; Password:<br />
&gt; @ERROR: auth failed on module test<br />
&gt;<br />
&gt; I dont understand this. Can somebody explain as to how to acomplish this.<br />
&gt; All suggestions are welcome.</p>
<p>应该是没有以你的用户名登陆导致的问题，试试rsync -a <a href="mailto:max@144.16.251.213::test">max@144.16.251.213::test</a> test</p>
<p>四、一些可借鉴的脚本</p>
<p>这里这些脚本都是rsync网站上的例子：</p>
<p>1、每隔七天将数据往中心服务器做增量备份</p>
<p>#!/bin/sh</p>
<p># This script does personal backups to a rsync backup server. You will end up<br />
# with a 7 day rotating incremental backup. The incrementals will go<br />
# into subdirectories named after the day of the week, and the current<br />
# full backup goes into a directory called &#8220;current&#8221;<br />
# <a href="mailto:tridge@linuxcare.com">tridge@linuxcare.com</a></p>
<p># directory to backup<br />
BDIR=/home/$USER</p>
<p># excludes file &#8211; this contains a wildcard pattern per line of files to exclude<br />
EXCLUDES=$HOME/cron/excludes</p>
<p># the name of the backup machine<br />
BSERVER=owl</p>
<p># your password on the backup server<br />
export RSYNC_PASSWORD=XXXXXX<br />
########################################################################</p>
<p>BACKUPDIR=`date +%A`<br />
OPTS=&#8221;&#8211;force &#8211;ignore-errors &#8211;delete-excluded &#8211;exclude-from=$EXCLUDES<br />
      &#8211;delete &#8211;backup &#8211;backup-dir=/$BACKUPDIR -a&#8221;</p>
<p>export PATH=$PATH:/bin:/usr/bin:/usr/local/bin</p>
<p># the following line clears the last weeks incremental directory<br />
[ -d $HOME/emptydir ] || mkdir $HOME/emptydir<br />
rsync &#8211;delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/<br />
rmdir $HOME/emptydir</p>
<p># now the actual transfer<br />
rsync $OPTS $BDIR $BSERVER::$USER/current</p>
<p>2、备份至一个空闲的硬盘</p>
<p>#!/bin/sh</p>
<p>export PATH=/usr/local/bin:/usr/bin:/bin</p>
<p>LIST=&#8221;rootfs usr data data2&#8243;</p>
<p>for d in $LIST; do<br />
    mount /backup/$d<br />
    rsync -ax &#8211;exclude fstab &#8211;delete /$d/ /backup/$d/<br />
    umount /backup/$d<br />
done</p>
<p>DAY=`date &#8220;+%A&#8221;`<br />
   <br />
rsync -a &#8211;delete /usr/local/apache /data2/backups/$DAY<br />
rsync -a &#8211;delete /data/solid /data2/backups/$DAY</p>
<p>3、对vger.rutgers.edu的cvs树进行镜像</p>
<p>#!/bin/bash</p>
<p>cd /var/www/cvs/vger/<br />
PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin</p>
<p>RUN=`lps x | grep rsync | grep -v grep | wc -l`<br />
if [ "$RUN" -gt 0 ]; then<br />
    echo already running<br />
    exit 1<br />
fi</p>
<p>rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog $HOME/ChangeLog</p>
<p>sum1=`sum $HOME/ChangeLog`<br />
sum2=`sum /var/www/cvs/vger/CVSROOT/ChangeLog`</p>
<p>if [ "$sum1" = "$sum2" ]; then<br />
    echo nothing to do<br />
    exit 0<br />
fi</p>
<p>rsync -az &#8211;delete &#8211;force vger.rutgers.edu::cvs/ /var/www/cvs/vger/<br />
exit 0</p>
<p>4、利用find的一种巧妙方式</p>
<p>rsync -avR remote:&#8217;`find /home -name &#8220;*.[ch]&#8220;`&#8217;/tmp/</p>
<p>可以用这种方法列出需要备份的文件列表——这种方法似乎比较少人用到。</p>
<p>五、参考资料：</p>
<p>1、<a href="http://rsync.samba.org/">http://rsync.samba.org/</a><br />
2、rsync examples<br />
3、rsync FAQ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2005/10/01/%e7%94%a8rsync%e5%af%b9%e7%bd%91%e7%ab%99%e8%bf%9b%e8%a1%8c%e9%95%9c%e5%83%8f%e5%a4%87%e4%bb%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>什么是GMT,什么是UTC</title>
		<link>http://www.bsdmap.com/2005/07/22/%e4%bb%80%e4%b9%88%e6%98%afgmt%e4%bb%80%e4%b9%88%e6%98%afutc/</link>
		<comments>http://www.bsdmap.com/2005/07/22/%e4%bb%80%e4%b9%88%e6%98%afgmt%e4%bb%80%e4%b9%88%e6%98%afutc/#comments</comments>
		<pubDate>Fri, 22 Jul 2005 14:23:57 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[技术备忘]]></category>

		<guid isPermaLink="false">http://bsdmap.org/~nix/2005/07/22/%e4%bb%80%e4%b9%88%e6%98%afgmt%e4%bb%80%e4%b9%88%e6%98%afutc/</guid>
		<description><![CDATA[什么是GMT,什么是UTC 0.时标 时标意指一种将时间分配到事件的制度。现时有两类时间标准广泛被采用。一种是基于天文学，另一种则以原子振动的频率作为依据。 1.视太阳时 视太阳时是一种源于太阳所见位置的时间标准。日晷可直接显示视太阳时。 2.UT0 由于地球轨道并非圆形，其运行速度又随着地球与太阳的距离改变而出现变化，因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性，天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UT0)，又叫格林尼治平时(GMT)。 3.UT1 UT1 与 UT2 是两种较 UT0 均匀的时标。随着较为精确的时钟面世，天文学家发现在不同地点量度的世界时出现差别。这种差别是由于地轴摆动而引起的。各地天文台详细测量了地轴摆动的影响后，制定了一种称为 UT1 的新时标将这种影响删除。 4.UT2 在时钟的精确度进一步改进后，又发现 UT1 具有周期性变化。这种变化是由地球自转率的季节性变动引起的。上述影响经修正后，得到一种更加均匀的时标称为 UT2。 5.国际原子时(TAI): 1967年的第13届国际度量衡会议上通过了一项决议，采纳以下定义代替秒的天文定义：一秒为铯-133原子基态两个超精细能级间跃迁辐射9,192,631,770周所持续的时间。国际原子时是根据以上秒的定义的一种国际参照时标，属国际单位制(SI)。 国际原子时标是一种连续性时标，由1958年1月1日0时0分0秒起，以日、时、分、秒计算。原子时标的准确度为每日数纳秒，而世界时的准确度则只为数毫秒。 6.协调世界时(UTC)： 一种称为协调世界时的折衷时标于1972年面世。为了确保协调世界时与世界时(UT1)相差不会超过0.9秒，有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。]]></description>
			<content:encoded><![CDATA[<p>什么是GMT,什么是UTC</p>
<p>0.时标<br />
时标意指一种将时间分配到事件的制度。现时有两类时间标准广泛被采用。一种是基于天文学，另一种则以原子振动的频率作为依据。<br />
1.视太阳时<br />
视太阳时是一种源于太阳所见位置的时间标准。日晷可直接显示视太阳时。<br />
2.UT0</p>
<p>由于地球轨道并非圆形，其运行速度又随着地球与太阳的距离改变而出现变化，因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性，天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UT0)，又叫格林尼治平时(GMT)。<br />
3.UT1</p>
<p>UT1 与 UT2 是两种较 UT0 均匀的时标。随着较为精确的时钟面世，天文学家发现在不同地点量度的世界时出现差别。这种差别是由于地轴摆动而引起的。各地天文台详细测量了地轴摆动的影响后，制定了一种称为 UT1 的新时标将这种影响删除。<br />
4.UT2</p>
<p>在时钟的精确度进一步改进后，又发现 UT1 具有周期性变化。这种变化是由地球自转率的季节性变动引起的。上述影响经修正后，得到一种更加均匀的时标称为 UT2。<br />
5.国际原子时(TAI):<br />
1967年的第13届国际度量衡会议上通过了一项决议，采纳以下定义代替秒的天文定义：一秒为铯-133原子基态两个超精细能级间跃迁辐射9,192,631,770周所持续的时间。国际原子时是根据以上秒的定义的一种国际参照时标，属国际单位制(SI)。<br />
国际原子时标是一种连续性时标，由1958年1月1日0时0分0秒起，以日、时、分、秒计算。原子时标的准确度为每日数纳秒，而世界时的准确度则只为数毫秒。<br />
6.协调世界时(UTC)：</p>
<p>一种称为协调世界时的折衷时标于1972年面世。为了确保协调世界时与世界时(UT1)相差不会超过0.9秒，有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2005/07/22/%e4%bb%80%e4%b9%88%e6%98%afgmt%e4%bb%80%e4%b9%88%e6%98%afutc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD下mount总结</title>
		<link>http://www.bsdmap.com/2005/07/19/freebsd%e4%b8%8bmount%e6%80%bb%e7%bb%93/</link>
		<comments>http://www.bsdmap.com/2005/07/19/freebsd%e4%b8%8bmount%e6%80%bb%e7%bb%93/#comments</comments>
		<pubDate>Tue, 19 Jul 2005 12:39:59 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://bsdmap.org/~nix/2005/07/19/freebsd%e4%b8%8bmount%e6%80%bb%e7%bb%93/</guid>
		<description><![CDATA[FreeBSD下mount总结 13 : 50 FreeBSD下Mount总结！ 1.mount FAT/FAT32分区：(C盘为例) mount -t msdos /dev/ad0s1 /mnt 或 mount_msdos /dev/ad0s1 /mnt for 4.xmount_msdosfs /dev/ad0s1 /mnt for 5.x2.mout Windows的扩展分区(FAT/FAT32)： 命令和1一样，只是要记住：扩展分区从s5开始，例如mount D盘,可用： mount -t msdos /dev/ad0s5 /mnt mount_msdos /dev/ad0s5 /mnt for 4.x mount_msdosfs /dev/ad0s5 /mnt for 5.x3.mount NTFS分区：(C盘为例) mount -t ntfs /dev/ad0s1 /mnt 或 mount_ntfs /dev/ad0s1 /mnt [注意]1.chinese/gbfs 的 ntfs 似乎有问题，不建议玩家级用户使用注意2.：要让mount上的windows 分区(或CD-ROM)显示中文，需要升级你的ports，再安装gbfs: [...]]]></description>
			<content:encoded><![CDATA[<h4 style="margin-bottom: 0px" id="subjcns!4DD5FDE6850D0AC1!112" class="TextColor1"><font color="#fff243">FreeBSD下mount总结</font></h4>
<p id="msgcns!4DD5FDE6850D0AC1!112" class="bvMsg"><font size="2" face="Times New Roman, Times, Serif">13 : 50 FreeBSD下Mount总结！ </font></p>
<p><font face="Times New Roman, Times, Serif"><font size="2"><font color="#ff0000">1.mount FAT/FAT32分区：(C盘为例)<br />
</font>mount -t msdos /dev/ad0s1 /mnt<br />
或<br />
mount_msdos /dev/ad0s1 /mnt <font color="#ff0000">for 4.x</font></font></font><font face="Times New Roman, Times, Serif"><font size="2">mount_msdosfs /dev/ad0s1 /mnt <font color="#ff0000">for 5.x</font></font></font><font face="Times New Roman, Times, Serif"><font size="2"><font color="#ff0000">2.mout Windows的扩展分区(FAT/FAT32)：<br />
</font>命令和1一样，只是要记住：扩展分区从s5开始，例如mount D盘,可用：<br />
mount -t msdos /dev/ad0s5 /mnt<br />
mount_msdos /dev/ad0s5 /mnt <font color="#ff0000">for 4.x</font><br />
mount_msdosfs /dev/ad0s5 /mnt <font color="#ff0000">for 5.x</font></font></font><font face="Times New Roman, Times, Serif"><font size="2"><font color="#ff0000">3.mount NTFS分区：(C盘为例)</font><br />
mount -t ntfs /dev/ad0s1 /mnt<br />
或<br />
mount_ntfs /dev/ad0s1 /mnt<br />
<font color="#ff0000">[注意]1.chinese/gbfs 的 ntfs 似乎有问题，不建议玩家级用户使用</font></font></font><font face="Times New Roman, Times, Serif"><font size="2"><font color="#ff0000">注意</font>2.：要让mount上的windows 分区(或CD-ROM)显示中文，需要升级你的ports，再安装gbfs:<br />
</font></font><font size="2" face="Times New Roman, Times, Serif">#cd /usr/ports/chinese/gbfs<br />
#make install clean<br />
然后编译内核，注释掉</font><font size="2" face="Times New Roman, Times, Serif">options CD9660<br />
options MSDOS</font><font size="2" face="Times New Roman, Times, Serif"><font color="#ff0000">注意</font>3.在5.1-current上不用安装gbfs,用：<br />
mount_msdosfs -L zh_CN.GB18030 /dev/ad0sX /mnt<br />
命令就可以支持FAT32分区上的中文文件名，当然，locale可以不用18030，zh_CN.eucCN, zh_CN.GBK都可以！</font><font size="2" face="Times New Roman, Times, Serif"><font color="#ff0000">4.mount Linux Ext2fs/Ext3fs:</font></p>
<p>在内核里面加入options EXT2FS，编译内核。<br />
mount 的时候用mount_ext2fs 命令即可,ext3fs的mount也用mount_ext2fs</p>
<p><font color="#ff0000">5.mount 普通数据光盘：</font></p>
<p>mount_cd9660 /dev/acd0 /cdrom</p>
<p><font color="#ff0000">6.mount ISO 文件</font><br />
在5.x中如下<br />
</font><font size="2" face="Times New Roman, Times, Serif">mdconfig -a -t vnode -f abc.iso -u 1<br />
mount_cd9660 /dev/md1 /cdrom</font><font size="2" face="Times New Roman, Times, Serif">4.8的版本<br />
</font><font size="2" face="Times New Roman, Times, Serif">vnconfig /dev/vn0 /home/xiaoche/a.iso<br />
mount -t cd9660 /dev/vn0 /mnt</font><font size="2" face="Times New Roman, Times, Serif">umount /mnt<br />
vnconfig -u /dev/vn0</font><font size="2" face="Times New Roman, Times, Serif"><font color="#ff0000">7.mount CD、VCD、DVD</font></p>
<p>播放CD、VCD、DVD不用先mount上。<br />
如果你一定要mount上，可以这样：#mount _cd9660 -s 0 /dev/acd0 /cdrom</p>
<p><font color="#ff0000">8.mount 软盘：</font><br />
1.Format:<br />
# /usr/sbin/fdformat -f 1440 /dev/fd0<br />
2. Run disklabel:<br />
# /sbin/disklabel -B -r -w /dev/fd0 fd1440<br />
3.Create New FS:<br />
# /sbin/newfs_msdos /dev/fd0<br />
4.Mount &amp; Use<br />
#mount_msdosfs /dev/fd0 /mnt</p>
<p><font color="#ff0000">9.mount usb</font></p>
<p>确保内核中有如下项<br />
</font><font size="2" face="Times New Roman, Times, Serif">device scbus<br />
device da<br />
device cd<br />
在GENERIC中默认都有，如果没有，请编译内核。<br />
大多数U盘用的是FAT 文件系统，所以用<br />
mount -t msdos /dev/da0 /mnt<br />
挂载</font><font size="2" face="Times New Roman, Times, Serif"><font color="#ff0000">10.mount ZIP软盘：</font><font color="#0000ff"> OneZ 兄提供</font></font><font size="2" face="Times New Roman, Times, Serif">#mount_msdosfs /dev/afd0s4 /mnt/zip</p>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2005/07/19/freebsd%e4%b8%8bmount%e6%80%bb%e7%bb%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>学习《FreeBSD技术内幕》</title>
		<link>http://www.bsdmap.com/2004/11/02/%e5%ad%a6%e4%b9%a0%e3%80%8afreebsd%e6%8a%80%e6%9c%af%e5%86%85%e5%b9%95%e3%80%8b/</link>
		<comments>http://www.bsdmap.com/2004/11/02/%e5%ad%a6%e4%b9%a0%e3%80%8afreebsd%e6%8a%80%e6%9c%af%e5%86%85%e5%b9%95%e3%80%8b/#comments</comments>
		<pubDate>Tue, 02 Nov 2004 06:00:31 +0000</pubDate>
		<dc:creator>洪川</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[FreeBSD技术内幕]]></category>

		<guid isPermaLink="false">http://www.bsdmap.com/~nnix/2004/11/02/%e5%ad%a6%e4%b9%a0%e3%80%8afreebsd%e6%8a%80%e6%9c%af%e5%86%85%e5%b9%95%e3%80%8b/</guid>
		<description><![CDATA[一下睡到十二点多，洗漱完之后，又懒得洗衣服了，怕是洗了，今天也干不了，还是到了星期天再洗。 今天复习《FreeBSD技术内幕》。 FreeBSD#shutdown -p now　　　　　//关闭系统，并关闭电源。-h选项只会关系系统，然后提示按任意键重启系统。 FreeBSD#shutdown -k now　　　　　//将所有系统逐出系统，禁止除root以外的用户登录但是保留多用户模式，并有网络支持。 FreeBSD#shutdown　　　　　　　　//进入单用户模式(无网络支持)。exit后重返多用户模式。 即将关闭系统的前5分钟，会创建一个名为/var/run/nologin文件，该文件会禁止一切用户的进一步登录。文件内容为shutdown命令发布的广播信息。 halt和reboot命令虽然也有关闭和重启系统的功能，但它们都不运行rc.shutdown脚本，不推荐使用。（我的个人观点：即然存在了，就有它存在的道理，作者没有说，但我想还是可以用的，他也只是说不推荐、不建议……有时候，我们发现，我们站在“悬崖”边上！） 只有当我们进行高级任务（比如更改shell变量设置别名）以及进行shell编程时不同的shell之间的差异才能表现出来。（bash是我最喜欢用的shell——所有的linux发行版上默认的shell。） man -k keyword　　　　　　　　　　 //一个需要发挥个人想象力的命令，呵呵 man -f command　　　　　　　　　　//输出命令、程序的简短介绍。 ls -G　　　　　　　　　　　　　　　//彩色文件条目输出。 rm -p　　　　　　　　　　　　　　 //安全删除 rm -w　　　　　　　　　　　　　　//恢复文件]]></description>
			<content:encoded><![CDATA[<p>一下睡到十二点多，洗漱完之后，又懒得洗衣服了，怕是洗了，今天也干不了，还是到了星期天再洗。<br />
今天复习《FreeBSD技术内幕》。</p>
<p>FreeBSD#shutdown -p now　　　　　//关闭系统，并关闭电源。-h选项只会关系系统，然后提示按任意键重启系统。<br />
FreeBSD#shutdown -k now　　　　　//将所有系统逐出系统，禁止除root以外的用户登录但是保留多用户模式，并有网络支持。<br />
FreeBSD#shutdown　　　　　　　　//进入单用户模式(无网络支持)。exit后重返多用户模式。</p>
<p>即将关闭系统的前5分钟，会创建一个名为/var/run/nologin文件，该文件会禁止一切用户的进一步登录。文件内容为shutdown命令发布的广播信息。<br />
halt和reboot命令虽然也有关闭和重启系统的功能，但它们都不运行rc.shutdown脚本，不推荐使用。（我的个人观点：即然存在了，就有它存在的道理，作者没有说，但我想还是可以用的，他也只是说不推荐、不建议……有时候，我们发现，我们站在“悬崖”边上！）</p>
<p>只有当我们进行高级任务（比如更改shell变量设置别名）以及进行shell编程时不同的shell之间的差异才能表现出来。（bash是我最喜欢用的shell——所有的linux发行版上默认的shell。）</p>
<p>man -k keyword　　　　　　　　　　 //一个需要发挥个人想象力的命令，呵呵<br />
man -f command　　　　　　　　　　//输出命令、程序的简短介绍。<br />
ls -G　　　　　　　　　　　　　　　//彩色文件条目输出。<br />
rm -p　　　　　　　　　　　　　　 //安全删除<br />
rm -w　　　　　　　　　　　　　　//恢复文件</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bsdmap.com/2004/11/02/%e5%ad%a6%e4%b9%a0%e3%80%8afreebsd%e6%8a%80%e6%9c%af%e5%86%85%e5%b9%95%e3%80%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

