找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 799|回复: 2

用一块u盘在久久派上玩转多系统

[复制链接]

22

主题

58

回帖

343

积分

超级版主

积分
343
发表于 2024-6-21 09:29:30 | 显示全部楼层 |阅读模式
本帖最后由 杜比 于 2024-6-21 11:15 编辑

思路大致上是,给u盘分多个分区,用pmon支持的boot.cfg菜单,引导指定分区的系统

一、分区建议和操作:

  • 要有个fat32分区,方便数据拷贝,也可以未来当efi分区用,所以是第一个分区
  • 分区表格式,可以选择传统的win95格式,能有4个主分区,也可以选择uefi分区,分区个数限制很少
  • 考虑到后续的文件系统解压安装等操作,推荐准备个linux环境,虚拟机实体机都好
  • 建一个linux.swap分区,容量任意,当虚拟内存使用

二、分区可以用的软件:

  • 命令行工具:fdisk,cfdisk,parted
  • 图形界面工具:GParted,partitionmanager(kde分区工具)
  • windows环境下,分区大师 DiskGenius


推荐使用图形界面工具,下图是kde的partitionmanager



三、自定义引导菜单


  1. timeout 3
  2. default 0 //显示默契启动下面那个选项,如果改成1就默认启动1选项
  3. showmenu 1

  4. title 'LoongOS (USB sda2)' //菜单0
  5.         kernel (usb0,0)/vmlinuz-wifi
  6.         args  console=tty console=ttyS0,115200 root=/dev/sda2 rootdelay=5 loglevel=8

  7. title 'Loongnix (USB sda3)' //菜单1
  8.         kernel (usb0,0)/vmlinuz-wifi
  9.         args  console=tty console=ttyS0,115200 root=/dev/sda3 rootdelay=5 loglevel=8

  10. title '(Linux buildroot sda4)' //菜单2
  11.         kernel (usb0,0)/vmlinuz-xxx  //定制内核
  12.         args  console=tty console=ttyS0,115200 root=/dev/sda4 rootdelay=5 loglevel=8

复制代码

自定义boot.cfg时需要注意几个技术点
  • 模板便于说明加了 //注释,实际应用是要删掉
  • 要区分好两个设备名,不能混淆
  • pmon是个引导加载器,是个类unix小环境,有自己的驱动程序和设备名规则
  • 系统引导时,菜单出现后,boot.cfg里面的 timeout 3 ,定义了等待时长(单位秒),此时按C键,可进入pmon环境命令行
  • pmon设备名可以用 devls 命令查看,插入一块u盘,可以识别成usb0,tf卡如果识别的话,设备名是 tfcard0
  • 指定分区,(usb0,0) 是第一个分区,(usb0,1) 是第二个分区,以此类推。
  • 在boot.cfg中,kernel 和 initrd 装载启动文件,使用的都是 pmon 设备名规则
  • args参数,是pmon传递给linux内核的参数,指定rootfs时,用的设备名是linux规则设备名
  • 内核会把usb盘,识别为 sdx ,sda是第一块磁盘,sdb是第二块
  • 内核对分区的识别是 sda1 = 第一块磁盘第一个分区,sdb2 = 第二块磁盘第二个分区,以此类推
  • 明确了设备名,指定路径就很容易了。
  • args参数的具体作用,可网络搜索。

四、文件系统的制作

大致上是两个步骤,一是把用制作rootfs的分区挂载,二是拷贝文件,过程如下:

把u盘插入linux环境(虚拟机或实体机),不要自动挂载,通过 ls /dev/sd* 获取u盘的设备名

如插入虚拟机环境,因为内部包含一个磁盘,所以u盘会识别成 sdb,对应的分区是 sdb1,sdb2,sdb3.......

例如要把buildroot或Linuxnix 放在第四个分区,那么进行如下操作

  1. // 把sdb4挂载到 /mnt目录

  2. sudo mount  /dev/sdb4  /mnt
复制代码

一般的rootfs是 tar.gz 后缀,使用
  1. sudo tar xvf xxx.tar.gz -C  /mnt
  2. sudo sync
复制代码


openwrt提供的是 .img 后缀,所以不需要上面的挂载命令,直接使用dd进行制作

  1. sudo dd bs=4M if=openwrt-loongarch-2k0300-rootfs-ext4.img of=/dev/sdb4 status=progress oflag=direct
  2. sudo sync
复制代码

最后记着,把自定义的boot.cfg拷贝到u盘第一个分区(fat32) 根目录下,让pmon能找到它















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

11

主题

63

回帖

447

积分

超级版主

积分
447
发表于 2024-6-21 15:18:13 | 显示全部楼层
妥妥的干货

8

主题

16

回帖

116

积分

注册会员

积分
116
发表于 2024-6-28 09:50:32 | 显示全部楼层
请问这个和配送到手的板子力的LoongOS有什么区别呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2024-11-23 16:25 , Processed in 0.085942 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表