使用debirf制作龙芯2F的LiveUSB

Debirf是一制作初始内存盘的工具,可以创建完全在内存运行的LiveCD Debian小型发行版. 本文内容是制作一可在龙芯2F上运行的LiveUSB,作为系统维护工具.

环境:龙芯2F笔记本逸珑8089,debian 9,o32

1.安装 root@debian:~# apt-get install debirf

(说明:debirf使用了fakechroot,正常来说普通用户可运行debirf,但我在普通用户运行debirf总出问题,所以下面都是在root用户下进行)

2.新建工作目录 root@debian:~# cd ~ root@debian:~# mkdir liveusb

3.解压debirf自带的最简制作例子 root@debian:~# cd liveusb root@debian:~/liveusb# tar xzf /usr/share/doc/debirf/example-profiles/minimal.tgz root@debian:~/liveusb# ls minimal

4.修改minimal目录下的debirf.conf文件 增加下面内容: #版本代号 DEBIRF_SUITE=stretch

#发行版 DEBIRF_DISTRO=debian

#镜像源 DEBIRF_MIRROR=http://ftp.cn.debian.org/debian

5.创建 root@debian:~/liveusb# debirf make minimal Warning: You are running debirf as root. There is a potential for improperly written modules to damage your system. Are you sure you wish to continue? [y|N]: (注意此句的警告:在root下运行debirf,有可能破坏系统) ...

生成了 Removing 'diversion of /usr/bin/ldd to /usr/bin/ldd.REAL by fakechroot' debirf> modules complete debirf> creating debirf initrd ('nested')... debirf> creating rootfs.cgz... 630749 blocks debirf> creating wrapper cgz... 217847 blocks debirf> debirf initrd created. debirf> kernel: /root/liveusb/minimal/vmlinux-4.6.0-1-loongson-2f debirf> initrd: /root/liveusb/minimal/debirf-minimal_stretch_4.6.0-1-loongson-2f.cgz

即 内核文件 : /root/liveusb/minimal/vmlinux-4.6.0-1-loongson-2f 初始内存映像文件: /root/liveusb/minimal/debirf-minimal_stretch_4.6.0-1-loongson-2f.cgz

6.格式化U盘 因龙芯2F的PMON不支持U盘大于2G分区,大于2G的U盘先分一2G的分区,且U盘仅只一个分区,并将U盘分区格式化为ext2格式

7.复制上面生成的内核文件和初始内存映像文件到U盘

8.安装grub2到U盘 龙芯2F的PMON可直接引导内核和加载初始内存映像,但PMON加载初始内存映像特别慢. 所以这里使用间接的方法:U盘安装grub2,由PMON引导grub2,然后grub2引导内核和加载初始内存映像

(说明:我没龙芯3A的电脑,但据说龙芯3A的PMON就没U盘容量大小限制,加载初始内存映像也快)

我的U盘的挂载点是/media/usb

root@debian:~/liveusb# cd ~

root@debian:~# grub-install --boot-directory=/media/usb Installing for mipsel-loongson platform. grub-install: warning: WARNING: no platform-specific install was performed. Installation finished. No error reported.

root@debian:~# ls /media/usb/grub fonts grubenv locale mipsel-loongson

root@debian:~# cat /media/usb/grub/mipsel-loongson/load.cfg search.fs_uuid ae174b7f-bc73-4329-a2ed-c06cd4b98ee9 root ahci1,msdos1 set prefix=($root)'/grub' root@debian:~#

(说明:ae174b7f-bc73-4329-a2ed-c06cd4b98ee9是U盘的uuid)

root@debian:~# ls /media/usb
debirf-minimal_stretch_4.6.0-1-loongson-2f.cgz grub grub.elf vmlinux-4.6.0-1-loongson-2f root@debian:~#

/media/usb/grub/下创建编辑grub.cfg文件 root@debian:~# cat /media/usb/grub/grub.cfg set timeout=15 menuentry 'Debian liveusb' {
insmod part_msdos insmod ext2 set=root ae174b7f-bc73-4329-a2ed-c06cd4b98ee9 echo 'Loading Linux 4.6.0-1-loongson-2f...'

linux /vmlinux-4.6.0-1-loongson-2f echo 'Loading initial ramdisk...' initrd /debirf-minimal_stretch_4.6.0-1-loongson-2f.cgz }

配置的关键是设置正确的U盘的uuid,不同情况下分区格式化,uuid是不同的,可用uuid查看工具或直接查看U盘安装完grub2后的../grub/mipsel-loongson/load.cfg

9.启动 插上U盘,开机上电,根据画面提示按<del>键进入PMON PMON> PMON> load (usb0,0)/grub.elf PMON> g 已打开grub菜单

已成功启动liveusb,加载初始内存盘映像约2分钟