搭建基于 ArchLinux 的龙芯无盘系统环境

环境简述
服务端: ArchLinux(192.168.0.1)
客户端: ArchLinux(dhcp)
服务器端使用 NFS 导出一个目录,此目录存放一个客户端可用的 ArchLinux 系统;客户端不安装硬盘,PMON 从网络加载 kernel 和 initrd,并将服务器端导出的系统目录作为根分区挂载至 /。

服务器端
1. 安装 ArchLinux 操作系统
2. 安装 nfs-utils

pacman -S nfs-utils

3. 创建客户端根目录

mkdir /srv/nfs/arch

4. 下载并安装客户端 ArchLinux 系统。

cd /srv/nfs
wget http://dev.lemote.com:2001/archlinux/archive/archlinux-lemote2f-201103082300.tar.gz
cd /srv/nfs/arch
tar xzf ../archlinux-lemote2f-201103082300.tar.gz

5. 更新客户端系统 initrd

chroot /srv/nfs/arch
vi /etc/mkinitcpio.conf
MODULES="nfs"  # add 'nfs'
HOOKS="base udev net autodetect pata scsi sata filesystems"  # add 'net'
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t tmpfs udev /dev
mkinitcpio -p kernel26
umount /dev /sys /proc

6. 设置 NFS 导出目录

vi /etc/exports
/srv/nfs/arch	*(rw,fsid=0,no_root_squash,no_subtree_check)
vi /etc/hosts.allow
nfsd:ALL
rpcbind:ALL
mountd:ALL

7. 启动服务器端 NFS 服务
可以在 rc.conf 增加自动启动项目

/etc/rc.d/rpcbind start
/etc/rc.d/nfs-common start
/etc/rc.d/nfs-server start

8. 修正客户机端系统网络配置

vi /etc/rc.conf
NETWORK_PERSIST="yes"
DAEMONS=(syslog-ng !network...

9. 安装并启动 TFTP 服务
安装一个 TFTP 服务,并将客户机系统中的 /boot/{vmlinz26,kernel26.img} 导出。

客户机端
1. PMON 启动参数

ifaddr rtk0 192.168.0.2
load tftp://192.168.0.1/tftp/vmlinuz26
initrd tftp://192.168.0.1/tftp/kernel26.img
g console=tty rootfstype=nfs root=/dev/nfs nfsroot=192.168.0.1:/srv/nfs/arch ip=::::::dhcp

Over!

ArchLinux for Lemote

架构名称

mipsel

编译参数

-march=mips3 -mabi=32 -O2

基本系统(包含 Lemote2F 通用内核 2.6.37)
http://dev.lemote.com:2001/archlinux/archive/

源服务器

http://dev.lemote.com:2001/archlinux/$repo/os/$arch

配置文件
http://dev.lemote.com:2001/archlinux/other/config/

Over!

阻止 VPS Host OS 篡改 Arch Linux 配置文件 rc.conf

现在用的 VPS 是 PhotonVPS 的 OpenVZ 虚拟化方案,Guest OS 是 Arch Linux。这家 VPS 服务商对于 Arch Linux 的配置是错误的,IPv6 地址不能正确配置。而且还会在开机前将 Arch Linux 的配置文件 /etc/rc.conf 给篡改了,导致正确的配置文件被破坏。

这里我们用修改一下系统初始化脚本 /etc/rc.sysinit 以阻止被篡改的配置文件生效。

备份正确的配置文件 rc.conf 和初始化脚本 rc.sysinit

cp /etc/rc.conf /etc/.brc  # 不要命名为 rc.conf.bak
cp /etc/rc.sysinit /etc/rc.sysinit.bak

/etc/rc.sysinit

#!/bin/bash
#
# /etc/rc.sysinit
#
 
cp /etc/.brc /etc/rc.conf   # 增加这行,加载前还原 rc.conf
. /etc/rc.conf
. /etc/rc.d/functions

Over!

解决 Arch Linux 中 Flash 中文字体缺失问题

原来我使用 wqy-bitmapfont 和 wqy-zenhei 两个字体,发现 Flash 中文字体缺失很严重,尝试了好多的方法都没有效果,最后在 AUR 中发现了 wqy-microhei 安装上解决了问题。

wqy-microhei 虽然目前只是个 beta 版,但是整体效果很好,比较喜欢这个字体。

安装方法

wget http://aur.archlinux.org/packages/wqy-microhei/wqy-microhei.tar.gz
tar xzf wqy-microhei.tar.gz && cd wqy-microhei
makepkg
sudo pacman -Rsn wqy-zenhei
sudo pacman -U wqy-microhei-0.2.0_beta-2-any.pkg.tar.xz

屏幕截图

Over!

ArchLinux 系统安装郑码输入法

郑码输入法是由北京中易公司开发,是中文形码输入法中最成熟和高效的,在 Windows 系统中也是默认安装。可能由于版权的问题,开源操作系统中几乎没有集成。

从源代码安装
郑码输入法的 ibus table 已经在 AUR 中发布,链接 http://aur.archlinux.org/packages.php?ID=45795

wget http://aur.archlinux.org/packages/ibus-table-zhengma/ibus-table-zhengma.tar.gz
tar xzf ibus-table-zhengma.tar.gz
cd ibus-table-zhengma
makepkg
sudo pacman -U ibus-table-zhengma-1.2.0-1-any.pkg.tar.xz

从预编译包安装

sudo pacman -U http://heiher.info/sftp/ime/zhengma/ibus-table-zhengma-1.2.0-1-any.pkg.tar.xz

Tip: 重启 IBus 生效。

Over!