From b7129a3222d0a17a76aa2056a7a6b602abdc9082 Mon Sep 17 00:00:00 2001 From: acevest Date: Sat, 13 Apr 2024 14:27:29 +0800 Subject: [PATCH] =?utf8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=9A=84=20mkiso.sh?= =?utf8?q?=20=E7=9A=84=E4=BD=BF=E7=94=A8=E6=96=B9=E6=B3=95=E8=AF=B4?= =?utf8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- mkiso.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/mkiso.sh b/mkiso.sh index ad5e640..0eacfc3 100755 --- a/mkiso.sh +++ b/mkiso.sh @@ -1,4 +1,11 @@ #!/bin/bash +# +# 需要先创建一个容器 docker run -it --name kernel fedora:38_x86_64 +# 并安装 grub2-mkrescue +# docker exec -it kernel bash +# dnf install grub2-tools-extra.x86_64 -y grub2-mkrescue在这个包里 +# dnf install grub2-pc.x86_64 -y 没有这个生成的 iso 文件 MBR 没有启动代码 +# dnf install xorriso -y # 兼容md5 命令 MD5=md5sum @@ -7,6 +14,14 @@ if [[ `uname` == 'Darwin' ]]; then fi +# 检查smkrootfs命令是否存在 +# 若不存在,需要进scripts/mkrootfs手动编译一个 +if ! type mkrootfs >/dev/null 2>&1; then + echo "mkrootfs command not found." + exit 1 +fi + + # 找到容器 if [ $# -ne 1 ]; then docker ps -a @@ -17,8 +32,6 @@ else fi echo "container id ${CONTAINER_ID}" -sync - mkrootfs -name rootfs -path initrd @@ -36,7 +49,7 @@ files[2]="rootfs:$grub2_boot_dir/rootfs" for i in "${!files[@]}"; do file_line="${files[$i]}" - + IFS=':' read -ra parts <<< "${file_line}" src_file="${parts[0]}" dst_file="${parts[1]}" -- 2.44.0