FreeBSD常用操作

1、查看 CPU:
sysctlhw.modelhw.ncpu
dmesg|grep"CPU:"
2、查看内存:
dmesg|grep “real memory”|awk -F ‘[()]’ ‘{print$2,$4,$7,$8}’
查看 swap:
top|grep"Swap:"|awk’{print$1,$2}’
3、查看硬盘:
diskinfo‐vt/dev/ad0
disklable/dev/ad0s2#查看分区信息
看硬盘大小:
dmesg|grep"sector"|awk’{print$1,$2}’
diskinfo‐v/dev/da0|grep"inbytes"|awk‐F’[()]’’{print$2}’

4、查看服务器品牌:
dmesg|grep"ACPIAPIC"
5、挂载文件系统:
fat32:mount_msdosfs ‐Lzh_CN.eucCN /dev/ad0s1/mnt
ntfs:mount_ntfs ‐CeucCn /dev/ad0s1/mnt
cdrom:mount_cd9660 /dev/acd0/mnt
注:ntfs 在 FreeBSD 中只能读无法写入
6、给文件添加或禁用系统禁删标志(目录不适用):
chflagssunlink file1
chflagsnosunlink file1
7、初始化磁盘:
fdisk ‐BIad1
8、建立 FreeBSD 分区:
disklabel ‐B ‐w ‐rad1s1auto
9、建立逻辑分区:
disklabel ‐ead1s1
10、格式化分区,创建文件系统:
newfs /dev/ad1s1e
11、显示 PCI 硬件信息:
pciconf ‐lv
12、开启 Linux二进制兼容支持(启用这一功能最简单的方法是载入linuxKLD模块):
kldloadlinux
让 Linux 兼容在系统初始化时自动启用,在/etc/rc.conf 中中入:
linux_enable=“YES”
13、检查 KLD 模块是否加载:
kldstat
14、在内核中静态链接进 Linux 二进制兼容模式,在内核配置文件里面加入:
options COMPAT_LINUX
15、设置网卡 em0 的 IP 地址:
ifconfig em0 inet 192.0.2.10 netmask 255.255.255.0
16、给网卡 em0 设置添加一个别名 IP 地址:
ifconfig em0 inet 192.168.51.45/24 add
17、删除网卡的别名 IP 地址:
ifconfig em0 inet 192.168.51.45 ‐alias
18、设置网卡 em0 的工作模式为 100baseTX 全双式:
ifconfig em0 media 100baseTX media opt full ‐duplex
19、当/usr/local/etc/rc.d 下的脚本无法自动启动时,可尝试在/etc/rc.conf 中加入一行:
local_startup="/usr/local/etc/rc.d"
20、在 ports 中寻找需要的软件,进入/usr/ports 目录执行:
make search name=lsof或echo /usr/ports/* /lsof或whereis lsof
make searchkey=关键字#在名字、注释、描述中搜索关键字
21、使用 package 方式安装管理软件,使用以下命令:
pkg_addlsof‐4.56.4.tgz#安装软件包
pkg_info#列出已安装所有软件包
pkg_version#统计所有安装的软件版本,比较本地 package 的版本与 ports 目录中的当前 版本是否一致
pkg_deletelsof‐4.56.4#删除软件包,需提供完整包名
22、使用 CVSup 协议更新本地 ports:(将 cvsup.FreeBSD.org 改为离得较近的 CVSup 服务 器)
csup‐L2‐hcvsup.FreeBSD.org/usr/share/examples/cvsup/ports‐supfile
23、一些 shell 会缓存环境变量 PATH 中指定的目录里的可执行文件,以加快查找速度,这 会造成一些新安装的命令无法运行,执行以下命令,然后才能运行新安装的那些命令:
rehash或hash‐r
24、当不是所有时间都能上网时,可在/usr/ports 下执行以下命令,所有需要的文件都将 被下载:(此命令可以在下级目录中执行,如/usr/ports/comms/nmp)
makefetch#只下载所需要文件,不下载依赖包
makefetch‐recursive#连同依赖包一起下载
25、改变默认的 Ports 目录:
makeWRKDIRPREFIX=/usr/home/example/portsinstall#在/usr/home/example/ports 中编译 port,安装到/usr/local
makePREFIX=/usr/home/example/localinstall#在/usr/ports 中编译 port,安装到 /usr/home/example/local
makeWRKDIRPREFIX=…/portsPREFIX=…/localinstall#在…/ports 中编译 port,安装到…/local
26、使用 portsclean 工具清除临时目录和 distfiles 目录:
portsclean‐C#清除安装时的临时目录
portsclean‐D#清除 distfiles 目录下所有 port 都不引用的文件
portsclean‐DD#删除目前安装的 port 没有使用的源码包文件
27、强制手动检测 SCSI 设备,SCSI 总线扫描:
camcontrol rescanall
28、显示 SCSI 设备列表:
camcontrol devlist
29、利用管道修改用户密码:
echo"password"|pwusermodroot‐h0
30、sed 插入行:
sed‐i‐E’/serviceport/a\
apexport:18306\
'/home/xiyou/config
31、用 freebsd 的 MBR 覆盖现有的 MBR:
fdisk‐B‐b/boot/boot0device
32、根据一个新的文件重新构建用户列表:
pwd_mkdb‐p/etc/master.passwd.new#‐p 即为生成新的/etc/passwd
33、取时间:
date‐v‐1d+%Y%m%d#Freebsd 取昨天日期方法
date‐v‐1w+%Y%m%d#Freebsd 取上周今日方法
date‐v‐1m+%Y%m%d#Freebsd 取上个月今日方法
date‐v‐1y+%Y%m%d#Freebsd 取去年今日的方法
34、以 xiyou 用户身份执行命令或脚本:
su‐xiyou‐c"cd/home/xiyou/script;./start_apex.sh&"
35、tar 打包时排除某个子目录:
tarzcvfApex09010702.tgz‐‐exclude=ApexItemServer/hook_logApexItemServer
注:上例是使用 GUN 版本的 tar 程序格式,否则‐‐exclude 参数应放在最后
36、锁住终端:
lock‐np#‐n永不超时,‐p使用系统密码作为开启终端的密匙
37、显示 ATA 设备列表:
ata controllist
38、查看网络流量:
systat ‐if1#1 表示 1 秒刷新屏幕一次,Traffic流量peak峰值average平均值
netstat 1
39、查看硬盘详细分区实时读写状况:
gstat
40、进单用户模式也需要密码:
a.vi /etc/ttys找到 whengoingtosingle‐usermode
b.修改 consolenoneunknownoff 后面的 secure,改为 insecure
c.存盘退出
41、在 FreeBSD5.X 以上加载,卸载 ISO 文件:
mount:
mdconfig‐a‐tvnode‐fmyisofile.iso#屏幕输出 md0 或者类似的设备名
mount‐tcd9660/dev/md0/mnt
umount:
umount/mnt
mdconfig‐d‐u0#‐u 后面的数字和前面的 md?中的数字一致
mdconfig‐l#可以列出关于配置 md?设备的信息 42、更新配置文件,比如编辑了.cshrc 等文件,就需要用 source 命令:
source.cshrc
43、修复 UFS 文件系统分区:
fsck_ufs/dev/ad1
44、pf 防火墙
pfctl‐e#启动 pf 防火墙
pfctl‐d#停止 pf 防火墙
pfctl‐sa|grepStatus#查看状态
pfctl‐f/etc/pf.conf#载入pf.conf文件
pfctl‐nf/etc/pf.conf#检查配置文件错误,但不载入
pfctl‐Nf/etc/pf.conf#只载入文件中的 NAT 规则
pfctl‐Rf/etc/pf.conf#只载入文件中的过滤规则
pfctl‐sn#显示当前的 NAT 规则
pfctl‐sr#显示当前的过滤规则
pfctl‐ss#显示当前的状态表
pfctl‐si#显示过滤状态和计数
pfctl‐sa#显示任何可显示的
pfctl‐thttp_table‐Tshow#查看动态表
pfctl‐thttp_table‐Tadd192.168.1.X#添加一个 IP 到表
pfctl‐thttp_table‐Tdel192.168.1.X#从表中删除 IP
45、系统优化+防止 ddos
加载文件修改
#vi/boot/loader.conf#加入如下文本
kern.dfldsiz=“2147483648”#Settheinitialdatasizelimit
kern.maxdsiz=“2147483648”#Setthemaxdatasize kern.ipc.nmbclusters=“0”#Setthenumberofmbufclusters
kern.ipc.nsfbufs=“66560”#Setthenumberofsendfile(2)bufs
##解释:
a.第一,第二行主要是为了突破 1G 内存设置的
b.第三行其实是 bsd 的一个 bug,当系统并发达到一个数量级的时候,系统会 crash, 这个是非常糟糕的事情,所幸更改了这个参数后,在高并发的时候,基本可以没有类似情 况,当然非常 bt 的情况,还得进一步想办法
c.第四行是读取的文件数,如果你下载的文件比较大,且比较多,加大这个参数,是非 常爽的
Sysctl 修改
#vi/etc/rc.local
sysctlkern.ipc.maxsockets=100000##增加并发的 socket,对于 ddos 很有用
sysctlkern.ipc.somaxconn=65535##打开文件数
sysctlnet.inet.tcp.msl=2500##timeout 时间
加速 ports 安装
#vi /etc/make.conf##加入如下
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/ D I S T S U B D I R / M A S T E R S I T E O V E R R I D E ? = h t t p : / / p o r t s . c n . f r e e b s d . o r g / {DIST_SUBDIR}/ MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/ DISTSUBDIR/MASTERSITEOVERRIDE?=http://ports.cn.freebsd.org/{DIST_SUBDIR}/
Freebsd 颜色显示
secureCRT 设置:仿真:终端‐>linux>勾选 ANSI 颜色‐‐>确定
#vi/etc/csh.cshrc##加入如下
setenvLSCOLORSExGxFxdxCxegedabagExEx
setenvCLICOLORyes
#cd/usr/ports/edit/vim;makeinstall
#echo"syntaxon">/root/.vimrc
#echo"aliasvivim">>/root/.cshrc ##颜色主要是靠 vim 来显示的,因此需要安装 vim,然后把 vialias 成 vim 就可以了
46、查看系统状态
fstat#报告系统中打开文件的信息
pstat‐T#显示这几个系统表的状态,包括当前使用的和可以利用的系统表空间,因此可以 用来检查系统在当前负载下是使用多大的系统表,帮助进行优化系统性能
systat#缺省情况下 systat 是报告处理器的使用率,包括总利用状态、空闲使用率和各个 进程的使用率
通过指定参数,systat 也能进行 I/O 的统计、虚存的统计、网络的统计等,这些参数 包括‐iostat,‐vmstat,‐mbufs,‐netstat,‐ip,‐icmp,‐tcp,‐swap 等
kldstat‐v#显示内核加载的模块
klsdstat‐mipfilter#显示指定模块
pnpinfo#即插即用设备
devinfo‐u#显示设备占用的 IRQ 和内存地址
使用 portsnap 生级 port 的目录树,建议使用;我没做这步,使用 port 安装 vim 系统报错。
①配置 portsnap:
我们使用 portsnap,首先要设置一下它的配置文件,位于/etc/portsnap.conf:
[root@bsd01/usr/ports]#vi/etc/portsnap.conf
把 SERVERNAME=portsnap.freebsd.org
修改成:
SERVERNAME=portsnap.hshh.org
在你的 freebsd 首次使用 portsnap 必须执行下面 2 步:
[root@bsd01~]#portsnap fetch
[root@bsd01~]#portsnap extract
#这 2 步可以合成使用:
[root@bsd01~]#portsnap fetch extract #portsnapfecth 是从网上获取 portsnap 快照的最新压缩包,听闻这个压缩包官方没小时更 新一次。
#portsnapextract则是把这个压缩包创立到/usr/ports。哪怕你以前已经手工安装了 ports, 他也会重新创立一次。
③以后使用 portsnap 更新 ports:
以后更新,只需要执行下面 2 步:
[root@bsd01~]#portsnap fetch
[root@bsd01~]#portsnap update
这 2 步可以合成使用:
[root@bsd01~]#portsnap fetch update
portsnap 第一次运行 extract 命令时,可能需要一段时间,以后更新使用 update 的时候, 速度就块很多了。

安装Freebsd后新增加网卡
在 /etc/rc.conf 里添加一bai行网卡信息,格式du类似:zhi
ifconfig_em1=“inet 183.0.0.2 netmask 255.255.255.224” (注意网卡设备要对应dao)
如果有必要,添加静态zhuan路由,格shu式类似:
defaultrouter=“183.0.0.1”
static_routes=“ed0”
route_ed0="-net 10.0.0.0/8 10.1.1.1"
保存后重启动网络,就会生效了:
/etc/netstart restart (注:此命令只在BSD上才有,Linux下没这个命令

驱动Aquantia 10G网卡的过程
新下载 TrueNAS玩一下,选择的是core版本,也就是原先的FreeNAS 12
安装过程自然跟FreeNAS是一样的,
只是装完后发现10G网卡依然是没有驱动的
先是,复制以前的驱动,试试看
从以前的存档中找出来,if_atlantic.ko
复制到一个U盘上,
插到TrueNAS电脑上,加载
先查看U盘设备
 # ls /dev/da*
由于我的系统是装载U盘上的,上面命令会显示出来两个U盘, da0和da1
新插入的U盘是da1, 分区是 da1s1
为U盘建立一个加载目录
#mkdir /media/usb
加载U盘
#mount_msdosfs /dev/da1s1 /media/usb
先加载驱动试试看
 # fldload /media/usb/if_atlantic.ko
结果报告我版本不对,不能加载,
想起来这个驱动用在freenas 11上没问题,很可能是因为现在核心版本已经升级到12的原因
在网上找了一圈,看看有没有其他人编译好支持12的,结果没找到,看来只好自己编译了
由于不想在TrueNAS上折腾freebsd核心代码和编译工具,就要新装一个FreeBSD 12.2了

换一个系统U盘,用于新装FreeBSD,
再用第三个空白U盘制作FreeBSD的安装盘
到freebsd.org网站,找到FreeBSD 12.2的安装镜像,选择amd64版本的FreeBSD-12.2-RELEASE-amd64-memstick.img
下载完成后,使用win32diskimager软件把安装img文件写入U盘
设置电脑启用主板上的千兆网卡
安装FreeBSD过程也挺简单,网卡自动识别了,安装过程中选择了安装系统源代码,其他保持默认
配置网络没问题后,
安装wget
#pkg install wget
然后下载最新驱动的源代码
wget https://github.com/Aquantia/aqtion-freebsd/archive/master.zip
已经更新到0.0.5版本了
解压 文件包
tar xzf master.zip
然后进入目录进行编译
 # make
最终会产生一个新的文件,if_atlantic.ko
将这个结果文件复制到U盘,过程和上面一样,就省略了
拿到了最新版的驱动,
回到TrueNAS系统
插入U盘加载后,
再次测试驱动程序是不是工作
 # fldload /media/usb/if_atlantic.ko
这回返回正常加载的信息了
然后把驱动文件if_atlantic.ko复制到目录
/boot/modules下面
#cp /media/usb/if_atlantic.ko /boot/modules
设置系统启动自动加载
打开/boot/loader.conf文件,在最后面增加一行
if_atlantic_load=“YES”
保存即可,
重新启动系统后,就可以看到网卡了

FreeBSD磁盘挂载
我添加的是一块SCSI的硬盘, 所以新加的硬盘应该是以da0,1…开头. 如果是添加IDE的硬盘, 貌似应该是以ad0,1… 开头的了.
一、默认安装完freebsd系统后,可执行df -h命令查看当前硬盘信息:
[root@www.unixnotes.net /] #df -h

Filesystem Size Used Avail Capacity Mounted on /dev/
da0s1a
140G 2.9G 126G 2% / devfs 1.0K 1.0K 0B 100% /dev 

从以上信息可知硬盘是
ad0
,好,接下来关机,接上第二个硬盘,开机登陆freebsd系统,执行dmesg命令:
[root@www.unixnotes.net /]#dmesg
显示以下信息:

...................................... .........省略部份.................. ......................... ppi0: on ppbus0 da0
: 139205MB [79656/16/63] at ata0-master UDMA100 da1
: 38166MB [77545/16/63] at ata1-master UDMA100 Mounting root from ufs:/dev/ad0s1a 

从以上信息可以看到新加的硬盘是
da1,
二、建立newdirectory目录用于挂载第二个硬盘
[root@www.unixnotes.net /]#cd /
[root@www.unixnotes.net /]#mkdir newdirectory
情况一,新增加的硬盘是没有数据的,或新增加的硬盘数据是不要的了!
先格式化一下硬盘:
[root@www.unixnotes.net /]#dd if=/dev/zero of=/dev/da1 bs=1k count=1
始化新磁盘
[root@www.unixnotes.net /]#fdisk -BI da1
加上标签
[root@www.unixnotes.net /]#disklabel -B -w -r da1s1 auto
现在编辑你刚才创建的磁盘分区
[root@www.unixnotes.net /]#disklabel -e da1s1
为你创建的每个分区重复这个操作
[root@www.unixnotes.net /]#newfs /dev/da1s1c
挂上分区
[root@www.unixnotes.net /]#mount /dev/da1s1c /newdirectory
情况二,要增加的硬盘是有数据的,而且数据是要保留的,到时要挂载到netdirectory目录的!
加上标签
[root@www.unixnotes.net /]#disklabel -B -w -r ad2s1 auto
现在编辑你刚才创建的磁盘分区
[root@www.unixnotes.net /]#disklabel -e ad2s1
挂上分区
[root@www.unixnotes.net /]#mount /dev/ad2s1c /newdirectory
三、编辑/etc/fstab 文件,添加合适的记录到你的/etc/fstab文件。如我的是增加以下信息:

/dev/ad2s1c /netdirectory ufs rw 2 2 

以上空白处用tab键隔开,不是空格,我的是ad2,具体根据dmesg显示的信息修改!如下是我的fstab文件内容:
[root@www.unixnotes.net /]#vi /etc/fstab

# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1f /tmp ufs rw 2 2 /dev/ad0s1g /usr ufs rw 2 2 /dev/ad0s1e /var ufs rw 2 2 /dev/acd0c /cdrom cd9660 ro,noauto 0 0 proc /proc procfs rw 0 0 /dev/ad2s1c /netdirectory ufs rw 2 2 

五、OK完成!

刚装出来的系统,想要让FreeBSD的csh像bash那样按tab列出无法补齐的候选文件,在/etc/csh.cshrc中加入以下,然后注销重新登录即可:
#vi /etc/csh.cshrc
set autolist
系统版本:FreeBSD8.2-64bit
内核参数:uname -a

1、首先查看新添加的磁盘有没有被系统识别出:
dmesg | grep “sector” | awk ‘{print $1,$2}’

第一列代表系统识别出的硬盘,第二列表示磁盘大小;我这里有三块盘:da0、da1、da2;
da1和da2是我刚挂上去的盘,没有任何分区,可用gpart show命令查看,博客后面会简单介绍下FreeBSD磁盘分区的基本概念;
可见当前默认的文件系统类型是:freebsd-ufs

现在需要挂载硬盘da1,当前的挂载情况如下:

2、FreeBSD下建议使用的磁盘分区方法是用sysinstall提供的菜单选项;另外,在BSD系统中,也可用fdisk 命令来划分slice分区(可理解为主分区),disklabel/bsdlabel来划分扩展分区;
2.1、以下是用sysinstall进行:
#sysinstall

选择要进行分区的磁盘:

A使用整个磁盘 C创建slice分区 D删除 W把所做的修改正式写入磁盘:

可用A选择整个磁盘;我这里要把da1分两个去分别挂载到/data1和/data2两个目录下;
按磁盘C,输入分区大小:

选择分区类型,默认165是slice,131为ext2fs,130为swap;

两个slice分区建好如下,之后W写入,选择yes:

这里安装引导器可选None不安装,因为已经在第一块磁盘安装过了:

OK 之后看到write successfully 100%即成功,Q退到之前的fdisk界面,选择编辑磁盘标签:

在之前建好的2个slice分区上分别C新建扩展,分区类型为文件系统,并指定挂载点(挂载目录/data1和/data2已提前建好)

完成之后退出,df -h查看挂载情况:

用gpart show 也可查看到新建的分区:

3、编辑fatab文件,实现开机挂载,reboot验证:

Dell最新LSI Raid卡驱动for FreeBSD
Dell在2011年出了新的R410,R710等服务器,采用自己定制的LSI 6G芯片,型号大致应包含:SAS2008,H200,H600等。但FreeBSD的8.2Release及之前的版本的merge时间早于Dell的服务器。因此在安装时会出现无法找到硬盘的情况,通常的解决办法包括不设置raid,然后进入load prompt里面,去加载mpt.ko等。但非根本解决办法。可能仍然无法正常启动。
附件为该Raid卡的FreeBSD驱动文件
mps.zip为驱动源代码,可以找已经装好的Freebsd去为自己的版本进行make,然后考出mps.ko文件
mps-bin.zip为FreeBSD8.2驱动的已编译好文件,含amd64和i386版本
mps-bin-7.4.zip为FreeBSD7.4驱动的已编译好文件,含amd64和i386版本
以8.2光盘镜像为例
1.用UltraISO打开FreeBSD的DVD ISO文件。
2.将mps.ko放入/boot/kernel/
3.编辑/boot/loader.conf,加入mps_enable=“YES”
4.保存光盘。
5.刻录光盘,引导启动服务器。
如果仍然不能识别硬盘,解决办法:

在选择界面选择进入Escape to load prompt
输入load /boot/kernel/mps.ko然后输入boot
在安装界面选择Fixit,选择CD/DVD进入LiveFS的命令行模式,然后输入kldload /boot/kernel/mps.ko。然后输入exit继续安装

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值