搭建基于 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!

14 thoughts on “搭建基于 ArchLinux 的龙芯无盘系统环境”

      1. 关键是GCC运行于龙芯吧。然后其他的用龙芯编译。

        不过,不知道编译出的软件是否可以正常用。

        arch对i686优化……本质上是不是兼容8086指令就OK呢?

    1. 多客户机根文件系统解决办法
      1. 在服务器端上制作一个可用的客户机系统镜像文件。
      2. 在 NFS 导出目录 /srv/nfs 中创建客户端根目录文件夹,如 01 02 03
      3. 将前面制作的系统镜像文件以只读方式挂载到 01,02和03目录上。
      4. 制作 01.img 02.img 03.img 可读写的镜像文件,使用 Unionfs 或 Aufs 合并挂载到 01, 02和03目录上。
      5. 01,02和03号客户机分别挂载这三个导出目录到根分区。

      在以后的维护升级中只需要变更一下服务器端上的客户系统镜像文件即可。

Leave a Reply

Your email address will not be published. Required fields are marked *