|
|
为方便裸机安装weiqiren-26系统,weiqiren-26启动img最便捷,直接烧录成启动闪存,减少手动制作的繁琐。同时,x86构架的微电脑主板设置有SD卡端口,通过刷机,也应该轻松使用上weiqiren-26系统。目前,有Vanilla Dpup、EasyOS两款puppy构建的img镜像,但论坛只发布下载链接,没有其相关分享与交流,从网帖或百度AI搜索到一些相关知识实操,测试启动闪存正常。
1.创建空白镜像文件
[root@weiqiren:~]$cd /root/veket(在/root/veket/文件夹下制作img空白镜像)
[root@weiqiren:~]$dd if=/dev/zero of=weiqiren-26-ext4-2gb-uefi.img bs=1M count=2048
[root@weiqiren:~]$dd if=/dev/zero of=weiqiren-26-ext4-2gb-bios.img bs=1M count=2048
count=2048为镜像大小,这里设置2G ,可以根据镜像文件的大小设置容量,例如:512 768 1024(1G) 2048 3072 4096 5120 6144 7168)
2.设置 loop 设备并映射分区
[root@weiqiren:~]$sudo losetup -f --show weiqiren-26-ext4-2gb-uefi.img
[root@weiqiren:~]$sudo losetup -f --show weiqiren-26-ext4-2gb-bios.img
演示输出: /dev/loop7
3.用 parted 进行分区
[root@weiqiren:~]$sudo parted /dev/loop7 mklabel msdos
[root@weiqiren:~]$sudo parted /dev/loop7 mkpart primary fat32 1MiB 63MiB
[root@weiqiren:~]$sudo parted /dev/loop7 set 1 boot on
[root@weiqiren:~]$sudo parted /dev/loop7 set 1 esp on # 对于编号为1的分区启用ESP支持
[root@weiqiren:~]$sudo parted /dev/loop7 mkpart primary ext4 63MiB 100%
[root@weiqiren:~]$sudo parted /dev/loop7 mklabel msdos
[root@weiqiren:~]$sudo parted /dev/loop7 mkpart primary fat32 1MiB 63MiB
[root@weiqiren:~]$sudo parted /dev/loop7 set 1 boot on
[root@weiqiren:~]$sudo parted /dev/loop7 set 1 lba on # 对于编号为1的分区启用LBA支持
[root@weiqiren:~]$sudo parted /dev/loop7 mkpart primary ext4 63MiB 100%
用kpartx查看/dev/loop7 分区情况
[root@weiqiren:~]$sudo kpartx -va /dev/loop7
演示输出:
add map loop7p1 (254:0): 0 135168 linear 7:7 2048
add map loop7p2 (254:1): 0 4581376 linear 7:7 137216
4.格式化分区
fat32分区格式化:
[root@weiqiren:~]$sudo mkfs.vfat -F 32 -n BOOT /dev/mapper/loop7p1 # boot 分区
验证格式化
[root@weiqiren:~]$sudo blkid /dev/mapper/loop7p1
ext4分区格式化:
[root@weiqiren:~]$sudo mkfs.ext4 -L ROOTFS /dev/mapper/loop7p2 # rootfs 分区
验证格式化
[root@weiqiren:~]$sudo blkid /dev/mapper/loop7p2
演示输出
/dev/mapper/loop7p2: LABEL="ROOTFS" UUID="22de59f9-442e-4f20-bcce-88e67e1e6c3a" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="ef2fe326-d2b5-46ed-90d7-30cd90a351fc"
重要提示:为确保启动闪存正常引导,须将/dev/loop7p1分区/EFI/boot/efilinux.cfg的UUID与/dev/loop7p2分区的UUID保持一致,首先,记住"ROOTFS" UUID="22de59f9-442e-4f20-bcce-88e67e1e6c3a" 。
重要提示:为确保启动闪存正常引导,须将/dev/loop7p1分区syslinux.cfg的UUID与/dev/loop7p2分区的UUID保持一致,首先,记住"ROOTFS" UUID="22de59f9-442e-4f20-bcce-88e67e1e6c3a" 。
5.(可选)挂载并写入数据
[root@weiqiren:~]$mkdir -p /mnt/boot /mnt/rootfs
[root@weiqiren:~]$sudo mount /dev/mapper/loop7p1 /mnt/boot
[root@weiqiren:~]$sudo mount /dev/mapper/loop7p2 /mnt/rootfs
# 拷贝启动文件到 FAT32 分区
首先,确保你的 FAT32 分区已经挂载。你可以使用 mount 命令来检查挂载点:
[root@weiqiren:~]$mount | grep /mnt/boot
如果未挂载,你可以使用如下命令挂载(替换 /dev/sdx1 为你的 FAT32 分区的设备文件,例如 /dev/sda1):
[root@weiqiren:~]$sudo mount /dev/sdx1 /mnt/boot
使用 cp 命令将 weiqr_26.iso的引导拷贝到 /mnt/boot 目录:
[root@weiqiren:~]$sudo cp /root/lucky8k/* /mnt/boot/ -avrf
(引导文件EFI.tar.gz解压后,会同iso镜像中的ucode.cpio、initrd.gz、vmlinuz放在/root/lucky8k/,要将其拷贝到 /mnt/boot/)
附件:bios引导
拷贝完成后,你可以使用 ls 命令来验证文件是否已经正确拷贝到 FAT32 分区:
[root@weiqr:~]$ls /mnt/boot/
验证后修改efilinux.cfg
-f \vmlinuz initrd=\ucode.cpio initrd=\initrd.gz pfix=fsck pmedia=usbflash pupsfs=22de59f9-442e-4f20-bcce-88e67e1e6c3a psave=22de59f9-442e-4f20-bcce-88e67e1e6c3a
验证后修改syslinux.cfg
DEFAULT puppy
LABEL puppy
LINUX vmlinuz
INITRD ucode.cpio,initrd.gz
APPEND pfix=fsck pmedia=usbflash pupsfs=96180eb6-de23-4e65-9c79-041c575125cb psave=96180eb6-de23-4e65-9c79-041c575125cb
# 拷贝根文件系统到 ext4 分区
[root@weiqiren:~]$sudo cp /root/lucky8k/* /mnt/rootfs/ -avrf
(提取veketa_26.iso中ucode.cpio、initrd.gz、vmlinuz和adrv、bdrv、fdrv、ydrv、zdrv、kbuild、weiqr7个sfs放在/root/lucky8k/,
要将其拷贝到 /mnt/rootfs/)
拷贝完成后,你可以使用 ls 命令来验证文件是否已经正确拷贝到 EXT4 分区:
[root@weiqiren:~]$ls /mnt/rootfs/
6.卸载
[root@weiqiren:~]$sudo umount /mnt/boot /mnt/rootfs
7.清理并释放资源
[root@weiqiren:~]$sudo kpartx -dv /dev/loop7
[root@weiqiren:~]$sudo losetup -d /dev/loop7
此时,weiqiren-26-ext4-2gb-uefi.img 即为包含 FAT32 和 ext4 分区的完整镜像文件,可用于烧录到 SD 卡、 TF 卡,制作闪存驱动器。
8.验证镜像分区结构
fdisk -l weiqr-26-ext4-2gb-uefi.img
输出应显示两个分区,类型分别为 W95 FAT32 (LBA) 和 Linux。
演示输出:
Disk weiqiren-26-ext4-2gb-uefi.img: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x79840ac1
Device Boot Start End Sectors Size Id Type
weiqiren-26-ext4-2gb-uefi.img1 2048 129023 126976 62M c W95 FAT32 (LBA)
weiqiren-26-ext4-2gb-uefi.img2 129024 4194303 4065280 1.9G 83 Linux
9.制作成gz包
[root@weiqiren:~]$cd /root/veket
[root@weiqiren:~]$gzip -r weiqiren-26-ext4-2gb-uefi.img
10.解压gz包
[root@weiqiren:~]$cd /root/veket
[root@weiqiren:~]$gzip -d weiqiren-26-ext4-2gb-uefi.img.gz
11.烧录命令(windows系统安装工具略)
weiqiren-26-ext4-2gb-uefi.img.gz链接:https://www.123865.com/s/OijA-yolvd?pwd=Sgo5#
提取码:Sgo5
将weiqr-26-ext4-2gb-uefi.img放到v24、v26、w26任意位置(这里放在/home/spot/)
[root@weiqiren:~]$cat "/home/spot/weiqr_26-ext4-2gb-uefi.img" | dd of=/dev/sdb bs=1M conv=fsync status=progress oflag=sync
提示:烧录前将U盘格式化fat32,并注意U盘符号,可能是sdb1或sdc1,若是sdb1时,of=/dev/sdb,若是sdc1时,of=/dev/sdc
12.img镜像更新
img镜像更新不需要重新制作img镜像容器,用命令挂载weiqiren-26-ext4-2gb-uefi.img,直接替换更新第一个分区中的vmlinuz和第二个分区中的*.sfs。
[root@weiqiren:~]$cd /root/veket
[root@weiqiren:~]$losetup -f --show weiqiren-26-ext4-2gb-uefi.img
/dev/loop7(/dev/loop7是可变的)
[root@weiqiren:~]$sudo kpartx -va /dev/loop7
weiqiren-26-ext4-2gb-uefi.img.gz
链接:https://www.123865.com/s/OijA-yolvd?pwd=Sgo5#
提取码:Sgo5
weiqiren-26-ext4-2gb-bios.img.gz
https://share.feijipan.com/s/gT29nDsF |
|