现在的位置: 首页 > 设计与使用案例 > 正文
freenas7保存修改后的配置文件_以及_ssh中文支持
2012年03月14日 设计与使用案例 ⁄ 共 1970字 暂无评论 ⁄ 被围观 1,868 views+

FreeNAS中配置文件修改后, 重启系统会复原, 相当郁闷, 经过两天摸索终于搞定, 特发帖庆祝, 附ssh连接后中文显示?的解决方案.

以下操作在FreeNAS 0.7.2 rev.8191操作通过,不一定适用于8及以上版本.

基本思路, 配置文件复原是由于系统启动通过文件映射到内存来实现的, 不是将根文件系统直接写在启动盘上的. 因此解决关键是找到镜像文件并将修改内容直接作用于镜像中.
官方系统因为在启动时没有支持utf8, 因此ssh登录后无法正常显示中文, 需要修改/etc/login.conf中相关内容:
原始的login.conf文件中可以看到如下内容:

引用:

#
# Russian Users Accounts. Setup proper environment variables.
#
russian|Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:

可以将以上行注释掉然后添加下面内容或直接替换:

引用:

me:\
:charset=en_US.UTF-8:\
:lang=en_US.UTF-8:\
:tc=default:

然后在putty中window->appearance中字体修改为中文字体,编码修改为gb2312;
在window->translation中编码选utf-8
然后登录,就可以看到我们喜闻乐见的方块字了~
接下来是重点了,经检查我们可以看到系统中挂载的设备如下

引用:

# mount
/dev/md0 on / (ufs, local)
devfs on /dev (devfs, local)
/dev/da0a on /cf (ufs, local, read-only)
procfs on /proc (procfs, local)
wd320 on /mnt/wd320 (zfs, local)
/dev/md1 on /var (ufs, local)

其中有一行: /dev/da0a on /cf (ufs, local, read-only)
我们去看一下

引用:

# ll /cf
total 67766
drwxrwxr-x  2 root  operator       512 Oct  9 18:24 .snap
drwxr-xr-x  5 root  wheel          512 Oct  9 18:24 boot
drwxr-xr-x  2 root  wheel          512 Feb 26 19:07 conf
-rw-r--r--  1 root  wheel     69314021 Feb 26 20:06 mfsroot.gz

有一个
-rw-r--r--  1 root  wheel     69314021 Feb 26 20:06 mfsroot.gz
这个文件就是我们今天的主角了! 他就是系统的ROM,我想应该可以这么说吧~
废话少说,这个文件接下来我们要做点小手术

引用:

# cp /cf/mfsroot.gz /tmp
# cd /tmp
# gunzip mfsroot.gz
[/qutoe]
这样可以得到一个文件mfsroot, 大小约200M左右
在然后:
[quote]
# mdconfig -a -t vnode -f mfsroot -u 2
# mkdir /mnt/mfsroot
# mount /dev/md2 /mnt/mfsroot
# cd /mnt/mfsroot
# ls

注意,这里有一个“2”,因为从前面我们可以看到/dev/md0和/dev/md1已经被用掉了,因此我们只能“2”了~
现在我们看到的是什么?哈哈!熟悉的根文件目录~ 尽情修改吧~。。。。此处省略xxx字
特别注意:修改有风险,操作须谨慎!
修改完成后,我们需要继续操作

引用:

# cd /
# umount /mnt/mfsroot
# mdconfig -d -u 2
# cd /tmp
# gzip -9 mfsroot

这时候我们会得到一个新的mfsroot,gz文件,比较一下,跟/cf下面的大小是不是不太一样?因为我们动过手术了!!
接下来要缝合了,如何吧这个文件覆盖回去呢?要知道人家可是只读的!

引用:

/dev/da0a on /cf (ufs, local, read-only)

据说有个remount的参数,经过实际操作,发现mount -o remount,rw....这句话弱爆了!系统竟然说不认识<remount>这个参数!不管,我们可以更加重口一点。。。
此处省略xx字~

引用:

# umount /cf
# mount -o rw /dev/da0a /cf
# mv /cf/mfsroot.gz mfsroot.gz.bak
# cp /tmp/mfsroot.gz /cf
# umount /cf

以上操作只是实际经验,没有理论支持,不知道是否会对系统造成影响,各位操作的时候请自重!
然后。。。重启系统。。。再然后。。。还有再然后?
// --- the end ---
音乐响起。。。开灯。。。散场。。。

给我留言

留言无头像?