以下操作在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 —
音乐响起。。。开灯。。。散场。。。