无忧启动论坛

 找回密码
 注册
搜索

如何用iso镜像的内置grub4dos整体启动wifislax。

查看数: 2660 | 评论数: 39 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-6-12 12:50

正文摘要:

本帖最后由 2012zhiwen 于 2024-6-15 13:52 编辑 1、请教下liuzhaoyzz大神,用你的grub4dos菜单(http://bbs.wuyou.net/forum.php?mod=viewthread&tid=429989,在10楼的回复)可以启动wifislax,但是如果把此菜 ...

回复

2012zhiwen 发表于 2024-6-16 09:29:41
hilsonma 发表于 2024-6-15 20:54
29楼不是说了么,用卷标不好
他说的就是你这种情况

有道理
财源茂盛 发表于 2024-6-15 21:25:11
提示: 作者被禁止或删除 内容自动屏蔽
hilsonma 发表于 2024-6-15 20:54:09
2012zhiwen 发表于 2024-6-15 19:54
如果不知道卷标的话,这样的菜单如何写呢。

29楼不是说了么,用卷标不好
他说的就是你这种情况

用卷标是linux的一大优势,但只是对善用卷标的人而言。
如果连卷标都不知道,为什么要用卷标呢,这时使用uuid 更好。
因为,别忘了,有相当一部分人,他们的一些分区,连卷标都没有的,卷标是空的。

点评

有道理  详情 回复 发表于 2024-6-16 09:29
2012zhiwen 发表于 2024-6-15 19:54:19
hilsonma 发表于 2024-6-15 13:50
用卷标跟用uuid是一样的用法,只不过是使用卷标代替uuid而已。
我认为,uuid用于根据标志文件找分区,而 ...

如果不知道卷标的话,这样的菜单如何写呢。

点评

29楼不是说了么,用卷标不好 他说的就是你这种情况 用卷标是linux的一大优势,但只是对善用卷标的人而言。 如果连卷标都不知道,为什么要用卷标呢,这时使用uuid 更好。 因为,别忘了,有相当一部分人,他们的  详情 回复 发表于 2024-6-15 20:54
szwp 发表于 2024-6-15 16:43:09

发现了么,grub2和grub4dos也是不同的。
2011whp 发表于 2024-6-15 14:21:48
也可以 试试用 run 的方法 (比修改镜像 方便)

http://wuyou.net/forum.php?mod=r ... &fromuid=413782
2012zhiwen 发表于 2024-6-15 13:51:16
szwp 发表于 2024-6-15 12:32
iOS不是苹果的么

ISO

点评

发现了么,grub2和grub4dos也是不同的。  详情 回复 发表于 2024-6-15 16:43
2012zhiwen 发表于 2024-6-15 13:50:59

想看看用卷标,是如何写的
hilsonma 发表于 2024-6-15 13:50:40
2012zhiwen 发表于 2024-6-15 00:45
大神出手。果然厉害。可否写个用卷标参数来处理的菜单呢,感谢感谢&#128591;

用卷标跟用uuid是一样的用法,只不过是使用卷标代替uuid而已。
我认为,uuid用于根据标志文件找分区,而卷标则用于自定义卷标。
如果有统一命名卷标的话,使用卷标的方法会更好,否则建议使用uuid.

uuid用法如:
(iso跟vmlinuz、initrd 放同一个文件夹)
  1. title wifislax
  2.     find /wifislax/vmlinuz | set dev=
  3.     uuid %dev%
  4.     set uu=%?%
  5.     kernel %dev%/wifislax/vmlinuz kbd=us xkb=us locale=zh_CN.utf8 tz=Asia/Shanghai rw toram livemedia=%uu%:/wifislax/wifislax30.iso
  6.     initrd %dev%/wifislax/initrd.xz
复制代码


(iso跟vmlinuz、initrd 不是同一个文件夹)
  1. title wifislax
  2.     find /isos/wifislax30.iso | set dev=
  3.     uuid %dev%
  4.     set uu=%?%
  5.     find /wifislax/vmlinuz | set dev=
  6.     kernel %dev%/wifislax/vmlinuz kbd=us xkb=us locale=zh_CN.utf8 tz=Asia/Shanghai rw toram livemedia=%uu%:/wifislax/wifislax30.iso
  7.     initrd %dev%/wifislax/initrd.xz
复制代码


卷标用法如:
(将iso所在分区卷标命名 MYISO )
  1. title wifislax
  2.     find /wifislax/vmlinuz | set dev=
  3.     kernel %dev%/wifislax/vmlinuz kbd=us xkb=us locale=zh_CN.utf8 tz=Asia/Shanghai rw toram livemedia=MYISO:/isos/wifislax30.iso
  4.     initrd %dev%/wifislax/initrd.xz
复制代码

点评

如果不知道卷标的话,这样的菜单如何写呢。  详情 回复 发表于 2024-6-15 19:54
孟仁飞 发表于 2024-6-15 13:48:04
1
szwp 发表于 2024-6-15 12:32:44
iOS不是苹果的么

点评

ISO  详情 回复 发表于 2024-6-15 13:51
wintoflash 发表于 2024-6-15 09:05:57
2012zhiwen 发表于 2024-6-15 00:45
大神出手。果然厉害。可否写个用卷标参数来处理的菜单呢,感谢感谢&#128591;

用卷标不好。

点评

想看看用卷标,是如何写的  详情 回复 发表于 2024-6-15 13:50
2012zhiwen 发表于 2024-6-15 00:50:46
my9823 发表于 2024-6-14 19:25
比如我的硬盘就三个分区,第一个分区esp分区,第二个分区ext4分区,最后一个ntfs分区。如果有多个硬盘, ...

(⊙o⊙)哇,这样就清晰很多了
2012zhiwen 发表于 2024-6-15 00:49:37
hilsonma 发表于 2024-6-14 20:12
livemedia 是指定iso所在位置,或者iso解开后放置的分区
livemain 是放置live os的文件夹。默认根目录下 ...

感谢给出这么详细的解答。
2012zhiwen 发表于 2024-6-15 00:47:20
my9823 发表于 2024-6-14 21:42
加载vmlinuz内核后,把initrd释放到内存盘中,initrd本身就是一个迷你版linux,,解开initrd会发现它的目录 ...

感谢解答,这几天在折腾中。
2012zhiwen 发表于 2024-6-15 00:45:03
wintoflash 发表于 2024-6-14 22:06
我服了。你照原帖抄都能抄偏了。不懂就别瞎几把乱改。

find --set-root /ISOS/wifislax64-3.3-final.iso ...

大神出手。果然厉害。可否写个用卷标参数来处理的菜单呢,感谢感谢&#128591;

点评

用卷标跟用uuid是一样的用法,只不过是使用卷标代替uuid而已。 我认为,uuid用于根据标志文件找分区,而卷标则用于自定义卷标。 如果有统一命名卷标的话,使用卷标的方法会更好,否则建议使用uuid.\ uuid用法如  详情 回复 发表于 2024-6-15 13:50
用卷标不好。  详情 回复 发表于 2024-6-15 09:05
wintoflash 发表于 2024-6-14 22:06:25
我服了。你照原帖抄都能抄偏了。不懂就别瞎几把乱改。

find --set-root /ISOS/wifislax64-3.3-final.iso
uuid ()
find --set-root /boot/vmlinuz
kernel /boot/vmlinuz livemedia=%?_UUID%:/ISOS/wifislax64-3.3-final.iso noload="000-PAE;012-x" autoexec=telinit~4
find --set-root /boot/initrd.xz
initrd/boot/initrd.xz

点评

好人  发表于 2024-6-15 21:03
大神出手。果然厉害。可否写个用卷标参数来处理的菜单呢,感谢感谢🙏  详情 回复 发表于 2024-6-15 00:45

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 赞一个!

查看全部评分

my9823 发表于 2024-6-14 21:42:07
加载vmlinuz内核后,把initrd释放到内存盘中,initrd本身就是一个迷你版linux,,解开initrd会发现它的目录结构和linux的目录一样。根目录有个init有时候是个脚本。如果不是看看/sbin目录有没有init,或者/etc目录有没有inittab等。如果是systemd启动,init就是systemd的软连接。

点评

感谢解答,这几天在折腾中。  详情 回复 发表于 2024-6-15 00:47
hilsonma 发表于 2024-6-14 20:12:02
本帖最后由 hilsonma 于 2024-6-14 20:31 编辑
2012zhiwen 发表于 2024-6-14 18:29
请问下,下面的两个参数如何用呢
livemedia=/dev/sdX => Tell the init script which partition
  cont ...

livemedia 是指定iso所在位置,或者iso解开后放置的分区
livemain 是放置live os的文件夹。默认根目录下的 wifislax64 文件夹,如果live os不是放在根目录下的 wifislax64 的话就需要使用此参数指定live os 文件夹。


vmlinuz 相当于winpe 的 bootmgfw.efi
initrd 相当于 winpe 的 boot.sdi
vmlinuz 后面的参数就相当于winpe 的bcd配置
    livemedia 相当于winpe 的 osdevice
    livemain 相当于winpe 的 systemroot

点评

感谢给出这么详细的解答。  详情 回复 发表于 2024-6-15 00:49
my9823 发表于 2024-6-14 19:28:58
hd0,0是grub和grub4dos的表示设备的方法,linux中无法识别这种表示方法。/dev/hda1,/dev/hdb1,/dev/sda1,/dev/sdb1.......
my9823 发表于 2024-6-14 19:25:34

比如我的硬盘就三个分区,第一个分区esp分区,第二个分区ext4分区,最后一个ntfs分区。如果有多个硬盘,不知道哪个是sda1,这得看脚本是如何查找判断的?

点评

(⊙o⊙)哇,这样就清晰很多了  详情 回复 发表于 2024-6-15 00:50
my9823 发表于 2024-6-14 19:16:25
本帖最后由 my9823 于 2024-6-14 19:18 编辑

百度来的:因为只见过hdx和sdx这种表示设备的方法,没用过nvme硬盘,百度了下!
IDE硬盘:早期的 IDE 接口硬盘被命名为hd[a-d],其中 hd 表示硬盘(Hard Disk),后面的字母 a 至 d 代表系统中第一至第四个 IDE 硬盘。不过,随着 SATA 接口硬盘的普及,这种命名方式已经变得不那么常见。

SATA/SCSI硬盘:这类硬盘被命名为 sd[a-z],sd 代表 SCSI 盘,尽管 SATA 硬盘并不直接使用 SCSI 接口,但 Linux 内核通过 SCSI 子系统来处理这些设备,因此也使用 sd 作为前缀。后续的字母代表不同的硬盘,例如 sda 是第一个 SATA/SCSI 硬盘,sdb 是第二个,依此类推。当超过 26 个硬盘时,命名会使用多个字母,如 sdaa、sdab 等。

NVMe硬盘:随着 NVMe 接口硬盘的出现,Linux 采用了新的命名规则,即 nvme[0-9]n[1-9],其中 nvme 是固定的前缀,第一个数字表示控制器的编号,n 是固定字符,第二个数字表示该控制器下的命名空间编号。例如,nvme0n1 表示第一个 NVMe 控制器下的第一个命名空间,即第一个 NVMe 硬盘。

分区:Linux 中的磁盘分区也遵循一定的命名规则。对于 IDE、SATA 和 SCSI 硬盘,分区被表示为硬盘名称后跟一个数字,例如 sda1、sda2 等,分别表示 sda 硬盘的第一和第二个分区。对于 NVMe 硬盘,分区命名在硬盘名之后直接加上分区号,例如 nvme0n1p1、nvme0n1p2,分别代表 nvme0n1 硬盘的第一和第二个分区。
my9823 发表于 2024-6-14 19:15:04
livemedia字面上应该是启动介质吧?应该写成/dev/sdx这种,如:/dev/sda1表示第一个sata硬盘的第一个分区,也可以使用UUID和磁盘卷标来定位吧?livemain后面跟着目录名。
2012zhiwen 发表于 2024-6-14 18:29:45
my9823 发表于 2024-6-14 16:52
initrd/boot/initrd.xz
看到这句没?先用xz -d initrd.xz解开,再用file命令查看initrd格式,确定解压方法 ...

请问下,下面的两个参数如何用呢
livemedia=/dev/sdX => Tell the init script which partition
  contains the Wifislax64 Live OS you want to boot. This can
  become necessary if you have another copy of Wifislax64 Live
  installed in another partition.  Also accepted: UUID or LABEL

livemain=directoryname => Use this if you copied the content
  of the ISO to a different directory than "wifislax64".

点评

livemedia 是指定iso所在位置,或者iso解开后放置的分区 livemain 是iso解开后放置的文件夹 (默认wifislax64 文件夹,如果不是的话就需要指定)。如果livemedai指定的是iso而不是解开的分区,就不需要此参数。  详情 回复 发表于 2024-6-14 20:12
my9823 发表于 2024-6-14 17:00:55
拿partedmagic来说,它基于slackware,看看/etc/inittab,/etc/rc.d/rc.S这个脚本。
my9823 发表于 2024-6-14 16:52:46
initrd/boot/initrd.xz
看到这句没?先用xz -d initrd.xz解开,再用file命令查看initrd格式,确定解压方法。
找个ext3或者ext4分区,因为linux中有硬链接,其他分区格式怕丢失文件。
如果是基于slackware的应该不是systemd启动,一般是脚本,找吧!

点评

请问下,下面的两个参数如何用呢 livemedia=/dev/sdX => Tell the init script which partition contains the Wifislax64 Live OS you want to boot. This can become necessary if you have another copy of  详情 回复 发表于 2024-6-14 18:29
hilsonma 发表于 2024-6-14 13:20:46
2012zhiwen 发表于 2024-6-14 11:48
这个要怎么处理呢

你原来不是在grub4dos区发贴了吗?怎么又发到grub2区来了。

不知道你现在要操作什么?

对于linux启动参数的处理,一般是依照安装光盘的参数来操作。除非你对这个系统非常熟悉了,对于镜像的内容也了然,就可以按自己的意愿去设置参数。

启动参数是要跟镜像内容匹配的,如果不熟悉镜像的内容,也不熟悉参数的具体运用,那还是照搬安装光盘为好。

2012zhiwen 发表于 2024-6-14 11:48:26
my9823 发表于 2024-6-14 11:45
这个需要看看它的initrd是如何处理这个参数的,内核后边的参数有的是内核处理,有的是initrd或者initramfs ...

这个要怎么处理呢

点评

你原来不是在grub4dos区发贴了吗?怎么又发到grub2区来了。 不知道你现在要操作什么? 对于linux启动参数的处理,一般是依照安装光盘的参数来操作。除非你对这个系统非常熟悉了,对于镜像的内容也了然,就可以  详情 回复 发表于 2024-6-14 13:20
my9823 发表于 2024-6-14 11:45:12
这个需要看看它的initrd是如何处理这个参数的,内核后边的参数有的是内核处理,有的是initrd或者initramfs处理

点评

这个要怎么处理呢  详情 回复 发表于 2024-6-14 11:48

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-29 03:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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