使用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分钟