veket官方网站论坛

veket

 找回密码
 要注册
搜索
楼主: 自由飞翔

lucky8k-25

[复制链接]
发表于 2024-4-1 11:54 | 显示全部楼层
自由飞翔 发表于 2024-4-1 06:43
漏掉了两个字母,是lucky8k,veket版主将窗口主题已更换了呢!上午重新上传更正,并上传virtualbox_7.0.1 ...


兴趣是最好的老师。
我只是大概知道init怎么改,知道linux启动大概的过程和原理,这方面我不是很在行啊。

jxkwxj、znuksg他们已经修改过了,我测试了,BIOS+UEFI启动没有问题。

veket22应该一样吧,也是那段代码那里。

在680行之后插入一段代码:


search_func() {
[ "$PDEBUG" -a "$LOOK_SAVE" ] && echo "3: filename=${PSUBDIR}/${DISTRO_FILE_PREFIX}save"
[ "$PDEBUG" -a "$LOOK_PUP" ] && echo "3: PSUBDIR=$PSUBDIR P_BP_FN=$P_BP_FN P_DEF_FN=$P_DEF_FN"
echo "HAVE_PARTS='${HAVE_PARTS}'" #debug
if [ "${1}" ];then
  echo "param='${1}'" #debug
  TRY_PARTS_FIRST="$(echo "$HAVE_PARTS" | grep -E "${1}")"
  TRY_PARTS_LAST="$(echo "$HAVE_PARTS" | grep -Ev "${1}")"
  TRY_PARTS="$TRY_PARTS_FIRST
$TRY_PARTS_LAST"
else
  TRY_PARTS="$HAVE_PARTS"
fi

## set by /sbin/isoboot
if [ "$ISO_LOOP" ] ; then
    TRY_PARTS="${ISO_PSAVE}|${ISO_PSAVE_FS}
${ISO_LOOP##*/}|iso9660
${TRY_PARTS}"
fi
##


echo "TRY_PARTS='${TRY_PARTS}'" #debug
[ "$TRY_PARTS" ] || return
for ONETRY in $TRY_PARTS;do
  ONE_PART="$(echo -n "$ONETRY" | cut -f 1 -d '|')"
  [ "$PDEBUG" ] && echo "4: ONE_PART=$ONE_PART"
  ensure_mounted "$ONE_PART" "/mnt/pdrv"
  if [ "$ONE_MP" ];then
   if [ "$LOOK_SAVE" -a "$SAVEPART" = "" ];then
    set_fs_linux "$ONE_FS"
    find_save_file "$ONE_MP" "$ONE_PART" "$ONE_FS"
    if [ "$PUP_SAVES" ];then
     SAVEPART="$ONE_PART"
     [ "$PDEBUG" ] && echo "5: ONE_PART=$ONE_PART filename=${PSUBDIR}/${DISTRO_FILE_PREFIX}save"
    fi
   fi
   if [ "$LOOK_PUP" ];then
    find_drv_file "$ONE_MP" "${PSUBDIR}/$ONE_DEF_FN"
    if [ "$ONE_FN" ];then
     SPEC_PART="$ONE_PART"
     SPEC_MP="$ONE_MP"
     SPEC_REL_FN="$ONE_FN"
     SPEC_FS="$ONE_FS"
     PUPSFS="${SPEC_PART},${SPEC_FS},${SPEC_REL_FN}"
     P_PART="$ONE_PART"
     [ "$PDEBUG" ] && echo "5: ONE_PART=$ONE_PART PSUBDIR=$PSUBDIR P_BP_FN=$P_BP_FN P_DEF_FN=$P_DEF_FN"
     break;
    fi
   fi
   umount $ONE_MP
  fi
done
}

把修改后的init搞进initrd.img,然后搞进initrd.gz,然后搞进veket_25.iso,然后就可以测试了。

网上有教程,jxkwxj、znuksg他们已经修改过了,详情可以咨询下他们。

menuentry "/linux/veket/lucky8k-25/veket_25.iso" "/linux/veket/lucky8k-25/veket_25.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
initrd (loop)/initrd.gz
}

menuentry "/linux/veket/lucky8k-25/veket_25.iso-loopback.cfg" "/linux/veket/lucky8k-25/veket_25.iso" {
terminal_output console;set lang=en_US
search --no-floppy --set --file $2
export iso_path=$2;loopback -d loop;loopback loop $2
set root=loop
configfile (loop)/boot/grub/loopback.cfg
}



 楼主| 发表于 2024-4-1 21:39 | 显示全部楼层
liuzhaoyzz 发表于 2024-4-1 11:54
兴趣是最好的老师。
我只是大概知道init怎么改,知道linux启动大概的过程和原理,这方面我不是很在行啊。 ...


initrd.gz文件解包和打包系统集成了initrd右键编辑功能:
将initrd.gz放至桌面/root/Desktop/右击initrd.gz后,在/root/initrd-expanded
文件夹内就是initrd.gz全部内容,修改DISTRO_SPECS或init文件后,再右击桌面上的initrd.gz后
桌面上生成的initrd.gz就是修改后的引导文件了。

关于这段代码
menuentry "/linux/veket/lucky8k-25/veket_25.iso" "/linux/veket/lucky8k-25/veket_25.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
initrd (loop)/initrd.gz
}

menuentry "/linux/veket/lucky8k-25/veket_25.iso-loopback.cfg" "/linux/veket/lucky8k-25/veket_25.iso" {
terminal_output console;set lang=en_US
search --no-floppy --set --file $2
export iso_path=$2;loopback -d loop;loopback loop $2
set root=loop
configfile (loop)/boot/grub/loopback.cfg
}

应该是添加到veket_25.iso镜像中grub.cfg、/boot/grub/grub.cfg、loopback.cfg中吗?
比如:grub.cfg添加后就是下面这个样子?

loadfont /boot/grub/font.pf2
set gfxmode=800x600
set gfxpayload=keep

insmod efi_gop
insmod efi_uga

insmod all_video
insmod video_bochs
insmod video_cirrus
insmod gfxterm
insmod png
insmod jpeg
terminal_output gfxterm

insmod ext2
insmod f2fs
insmod ntfs
insmod exfat

insmod loopback
insmod iso9660
insmod udf

background_image /boot/splash.png
set timeout=10

# https://help.ubuntu.com/community/Grub2/Displays
color_normal=cyan/black
#menu_color_highlight=black/light-gray
menu_color_highlight=yellow/red
menu_color_normal=light-gray/black

menuentry "veket 25" {
    linux /vmlinuz pmedia=cd pfix=fsck
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "veket 25 - Copy SFS files to RAM" {
    linux /vmlinuz pmedia=cd pfix=fsck,copy
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "veket 25 - Don't copy SFS files to RAM" {
    linux /vmlinuz pmedia=cd pfix=fsck,nocopy
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "veket 25 - No X. Try 'xorgwizard' after bootup" {
    linux /vmlinuz pmedia=cd pfix=nox,fsck
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "veket 25 - Safe mode, no X" {
    linux /vmlinuz pmedia=cd pfix=ram,nox,fsck
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "veket 25 - RAM only - no pupsave" {
    linux /vmlinuz pmedia=cd pfix=ram,fsck
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "veket 25 - Ram Disk Shell" {
    linux /vmlinuz pmedia=cd pfix=rdsh
    if [ -e /ucode.cpio ]; then
      initrd /ucode.cpio /initrd.gz
    else
      initrd /initrd.gz
    fi
}

menuentry "/linux/veket/lucky8k-25/veket_25.iso" "/linux/veket/lucky8k-25/veket_25.iso" {
   set gfxpayload=keep
   search --no-floppy --set --file $2
   loopback loop $2
   linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
   initrd (loop)/initrd.gz
}

menuentry "/linux/veket/lucky8k-25/veket_25.iso-loopback.cfg" "/linux/veket/lucky8k-25/veket_25.iso" {
   terminal_output console;set lang=en_US
   search --no-floppy --set --file $2
   export iso_path=$2;loopback -d loop;loopback loop $2
   set root=loop
   configfile (loop)/boot/grub/loopback.cfg
}


menuentry "Shutdown" {
        halt
}

menuentry "Reboot" {
        reboot
}
截图_2024-04-01_22-01-31.png
截图_2024-04-01_22-02-15.png

SR_v2.2-Video-2024_04_01-21-24-15.mp4.tar.gz

1.13 MB, 下载次数: 2, 下载积分: 铜币 -5

发表于 2024-4-2 00:13 | 显示全部楼层
进来看看了,大家先用上,支持分享!
发表于 2024-4-3 19:27 来自手机 | 显示全部楼层
自由飞翔 发表于 2024-4-1 21:39
initrd.gz文件解包和打包系统集成了initrd右键编辑功能:
将initrd.gz放至桌面/root/Desktop/右击initrd. ...

不是啊,启动菜单是在iso之外的,是用grub2启动veket.iso的菜单呀,就像grub4dos的菜单。
发表于 2024-4-3 19:29 来自手机 | 显示全部楼层
自由飞翔 发表于 2024-4-1 21:39
initrd.gz文件解包和打包系统集成了initrd右键编辑功能:
将initrd.gz放至桌面/root/Desktop/右击initrd. ...

你用我的那个批处理可以自动生成grub2启动菜单,grub4dos的也可以,有视频啊,几十秒就好了。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-5-4 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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