分享
 
 
 

Unix编程/应用问答中文版---21.FreeBSD相关问题

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

作者:不祥 [文章出自: www.fanqiang.com]

21. FreeBSD相关问题

21.1

21.2 如何将一个512字节的文件写入主引导扇区

21.3

21.4

21.5

21.6 x86/FreeBSD 4.x下不能cp覆盖/kernel

21.7 x86/FreeBSD下如何设置路由

21.8

21.9 什么是locale

21.10 用cvsup安装vim

21.11 FreeBSD下vi输入中文会显示\\x??\\x??

21.12

21.13

21.14

21.15 UDMA ICRC error是什么意思

21.16 Limiting closed port RST response什么意思

21.17

21.18

21.19

21.20

--------------------------------------------------------------------------

21.2 如何将一个512字节的文件写入主引导扇区

A: All of DOS Programmers 2001-10-16 18:05

这个问题如果在90年代初MS-DOS盛行的时候出现,是要被人砍死的,如今时过境迁,

居然能进入这份Unix文档,权当是一种追忆吧。所谓主引导扇区就是硬盘0柱面、0磁

头、1扇区。启动DEBUG,

-f 0200 l 0200 0 <-- 从0200h处开始清零,长512字节

-n mbr <-- 假设我们的要处理的文件名为mbr

-l 0200 <-- 读到0200h处

-d 03be 03ff <-- 检查分区表

XXXX:03B0 00 00 ..

XXXX:03C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

XXXX:03D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

XXXX:03E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

XXXX:03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.

-

-a 100 <-- 读主引导扇区的汇编代码

XXXX:0100 mov ax, 0201 <-- 读取一个扇区,ah=02(功能码),al=01(扇区总数)

XXXX:0103 mov bx, 0400 <-- 读取后存放在0400h处,长512字节

XXXX:0106 mov cx, 0001 <-- ch=00(柱面号,10bit),cl=01(扇区号,6bit)

XXXX:0109 mov dx, 0080 <-- dh=00(磁头号),dl=80h(驱动器号)

XXXX:010C int 13 <-- int 13h 磁盘I/O BIOS

XXXX:010E int 3 <-- 单步中断,可以换成int 20h

XXXX:010F

-g=100 <-- 从0100h处开始执行

AX=0050 BX=0400 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000

DS=XXXX ES=XXXX SS=XXXX CS=XXXX IP=010E NV UP EI PL NZ NA PO NC

XXXX:010E CC INT 3

-d 05be 05ff <-- 检查分区表

XXXX:05B0 80 01 ..

XXXX:05C0 01 00 06 FE 3F 7F 3F 00-00 00 41 60 1F 00 00 00 ....?.?...A`....

XXXX:05D0 01 80 0F FE FF FF 80 60-1F 00 22 3C A0 01 00 00 .......`.."<....

XXXX:05E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

XXXX:05F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.

-

-m 05be l 40 03be <-- 复制分区表

-d 03be l 40 <-- 确认分区表复制成功

XXXX:03B0 80 01 ..

XXXX:03C0 01 00 06 FE 3F 7F 3F 00-00 00 41 60 1F 00 00 00 ....?.?...A`....

XXXX:03D0 01 80 0F FE FF FF 80 60-1F 00 22 3C A0 01 00 00 .......`.."<....

XXXX:03E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

XXXX:03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 ..............

-a 100 <-- 写主引导扇区的汇编代码

XXXX:0100 mov ax, 0301 <-- 写一个扇区,ah=03(功能码),al=01(扇区总数)

XXXX:0103 mov bx, 0200 <-- 待写入数据存放在0200h处,长512字节

XXXX:0106 mov cx, 0001 <-- ch=00(柱面号,10bit),cl=01(扇区号,6bit)

XXXX:0109 mov dx, 0080 <-- dh=00(磁头号),dl=80h(驱动器号)

XXXX:010C int 13 <-- int 13h 磁盘I/O BIOS

XXXX:010E int 3 <-- 单步中断,可以换成int 20h

XXXX:010F

-g=100 <-- 从0100h处开始执行

-q <-- 退出DEBUG

第2个硬盘驱动器号是81h,修改DX寄存器赋值语句即可。

A: All of Solaris/FreeBSD/Linux Users

dd if=<path to file> of=/dev/... bs=512 count=1

^^^^^^^^ 对应要处理的物理硬盘设备

21.6 x86/FreeBSD 4.x下不能cp覆盖/kernel

Q: 重新编译内核后用cp命令无法覆盖/kernel

A: deepin <deepin@nsfocus.com>

# ls -lo /kernel

-rwxr-xr-x 1 root wheel schg /kernel*

^^^^注意这里,类似Linux的chattr那些东西

# chflags noschg /kernel

参看CHFLAGS(1)、INSTALL(1)手册页。这样修改后可以cp覆盖/kernel了。最后恢复

chflags设置

# chflags schg /kernel

21.7 x86/FreeBSD下如何设置路由

A: backend <backend@nsfocus.com> 2001-10-25 11:33

/etc/defaults/rc.conf或者/etc/rc.conf中会有这样的设置

--------------------------------------------------------------------------

defaultrouter="NO" # Set to default gateway (or NO).

static_routes="" # Set to static route list (or leave empty).

--------------------------------------------------------------------------

下面分析static_routes的用法,从/etc/rc.network脚本中可以看到这样的处理

--------------------------------------------------------------------------

# Configure routing

#

case ${defaultrouter} in

[Nn][Oo] | '')

;;

*)

static_routes="default ${static_routes}"

route_default="default ${defaultrouter}"

;;

esac

# Set up any static routes. This should be done before router discovery.

#

if [ -n "${static_routes}" ]; then

for i in ${static_routes}; do

eval route_args=\\$route_${i}

route add ${route_args}

done

fi

--------------------------------------------------------------------------

注意eval命令导致二次变量替换,对上述脚本分析后可知static_routes用法如下

--------------------------------------------------------------------------

defaultrouter="<IP>"

static_routes="<name1> <name2> ..."

route_<name1>="符合route add命令的语法格式"

route_<name2>="符合route add命令的语法格式"

... ...

--------------------------------------------------------------------------

举例说明

--------------------------------------------------------------------------

defaultrouter="192.168.0.1"

static_routes="entry1 entry2"

route_entry1="-net 10.10.1.0 -netmask 255.255.255.0 -gateway 192.168.254.1"

route_entry2="-net 10.10.2.0 -netmask 255.255.255.0 -gateway 192.168.254.2"

--------------------------------------------------------------------------

当然,你可以不用两个rc.conf文件,而是在/etc/rc.local中直接用route命令增加

路由。

21.9 什么是locale

A: Shen Chuan-Hsing <statue@freebsd.sinica.edu.tw>

locale 指定一组C语言处理自然语言(文字)的方式,也可以简单地说,locale反映了

一组"地区性语言"的配置信息

LC_ALL 代表所有的locale(如下)

LC_CTYPE 字符定义(包含字符分类与转换规则)

LC_MESSAGES 信息显示

LC_TIME 时间格式

LC_NUMERIC 数字格式

LC_MONETARY 货币格式

LC_COLLATE 字母顺序与特殊字符比较顺序

其中与一般使用者息息相关的是是LC_CTYPE与LC_MESSAGES。LC_CTYPE直接关系到某

些字符或內码在目前locale下是否可显示?要如何转换编码?对应到哪一个字?等等。

LC_MESSAGES则关系到软件的信息输出是否符合地域性,例如:我们需要的是中文。

而一个真正完整支持locale系统,是当使用者在shell prompt下,直接设置好环境变

量后就马上切换到那种语言了,例如:

% export LC_CTYPE=zh_TW.Big5

设置locale的字符定义为台湾地区的Big5繁体中文码定义。有了正确的locale定义后,

使得任何地区的的文字,只要在加入适当的locale data之后,C Library就能正确地

处理软件显示信息,而我们使用的[中文]当然也不例外。

21.10 用cvsup安装vim

A: deepin <deepin@nsfocus.com> & scz <scz@nsfocus.com> 2001-11-20 09:42

0) vim主站在http://www.vim.org/

1) # which cvsup

/usr/local/bin/cvsup

如果没有,就用www.google.com去搜一个好了,以"cvsup-bin tgz"做关键字

# wget http://people.freebsd.org/~jdp/s1g/i386-nogui/cvsup-16.1e.tgz

# pkg_add cvsup-16.1e.tgz

2) # cd /usr/share/examples/cvsup

# cp ports-supfile scz

# vi scz

# cvsup -g -L 2 scz

--------------------------------------------------------------------------

#

# cvsup配置文件

#

*default host=cvsup.cn.FreeBSD.org

*default base=/usr

*default prefix=/usr

*default release=cvs tag=.

*default delete use-rel-suffix

*default compress

#ports-all

ports-editors

--------------------------------------------------------------------------

3) # cd /usr/ports/editors/vim

# make -DWITHOUT_X11 install <-- 否则必须在X下使用vim

# whic vim

/usr/local/bin/vim <-- vim直接支持输入中文

21.11 FreeBSD下vi输入中文会显示\\x??\\x??

A: Shen Chuan-Hsing <statue@freebsd.sinica.edu.tw>

这通常都是设定了LC_CTYPE为zh_TW.Big5(对大陆是zh_CN.EUC)或是没设定LC_CTYPE

才会发生的问题,在~/.cshrc中加上下面的alias即可:

alias vi 'env LC_CTYPE=en_US.ISO_8859-1 vi'

参看PRINTENV(1)手册页了解更多env命令细节。直接改用vim也可以支持中文。

21.15 UDMA ICRC error是什么意思

Q: 在console上出现错误信息"UDMA ICRC error writing... ...",什么意思

A: tt <warning3@nsfocus.com>

通常是使用了40线的IDE硬盘线,然而硬盘被设置成使用DMA模式,这种模式需要80线

硬盘线。也有可能是您的硬盘不支持DMA方式。解决方法有几种

1) 换用一根80线的IDE硬盘线(没干过)

2) 在CMOS BIOS中关闭对UDMA的支持

3) 在FreeBSD中关闭对UDMA的支持

vi /etc/sysctl.conf

hw.atamodes=pio,pio,pio,pio,

这样做,可能会降低硬盘速率。

21.16 Limiting closed port RST response什么意思

Q: console上出现"Limiting closed port RST response",什么意思

A: tt <warning3@nsfocus.com>

某些主机快速访问你的主机上一些没有开放的端口,你的主机正在回复RST报文,这

是正常反应。但FreeBSD内核限制了每秒钟回复RST报文的数量,以防止发生可能的

DoS攻击。例如,如果攻击者通过伪造源IP来向你的未开端口发送大量连接请求,就

可能诱使你的主机向该主机发送RST报文。这可能导致受害主机所在网络的带宽占用。

如果你不想看到上述信息,可以打开黑洞模式来停止响应RST报文。这也可以减缓远

程攻击者对你的主机的扫描速度。

# sysctl -w net.inet.tcp.blackhole=2

# sysctl -w net.inet.udp.blackhole=1

也可以在/etc/sysctl.conf中增加下列选项使黑洞模式每次启动后都生效

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

&nbs

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有