hilsonma 发表于 2024-6-15 20:54 有道理 |
2012zhiwen 发表于 2024-6-15 19:54 29楼不是说了么,用卷标不好 他说的就是你这种情况 用卷标是linux的一大优势,但只是对善用卷标的人而言。 如果连卷标都不知道,为什么要用卷标呢,这时使用uuid 更好。 因为,别忘了,有相当一部分人,他们的一些分区,连卷标都没有的,卷标是空的。 |
hilsonma 发表于 2024-6-15 13:50 如果不知道卷标的话,这样的菜单如何写呢。 |
发现了么,grub2和grub4dos也是不同的。 |
也可以 试试用 run 的方法 (比修改镜像 方便) http://wuyou.net/forum.php?mod=r ... &fromuid=413782 |
szwp 发表于 2024-6-15 12:32 ISO |
想看看用卷标,是如何写的 |
2012zhiwen 发表于 2024-6-15 00:45 用卷标跟用uuid是一样的用法,只不过是使用卷标代替uuid而已。 我认为,uuid用于根据标志文件找分区,而卷标则用于自定义卷标。 如果有统一命名卷标的话,使用卷标的方法会更好,否则建议使用uuid. uuid用法如: (iso跟vmlinuz、initrd 放同一个文件夹)
(iso跟vmlinuz、initrd 不是同一个文件夹)
卷标用法如: (将iso所在分区卷标命名 MYISO )
|
1 |
iOS不是苹果的么 |
2012zhiwen 发表于 2024-6-15 00:45 用卷标不好。 |
my9823 发表于 2024-6-14 19:25 (⊙o⊙)哇,这样就清晰很多了 |
hilsonma 发表于 2024-6-14 20:12 感谢给出这么详细的解答。 |
my9823 发表于 2024-6-14 21:42 感谢解答,这几天在折腾中。 |
wintoflash 发表于 2024-6-14 22:06 大神出手。果然厉害。可否写个用卷标参数来处理的菜单呢,感谢感谢🙏 |
我服了。你照原帖抄都能抄偏了。不懂就别瞎几把乱改。 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 |
参与人数 1 | 无忧币 +2 | 收起 理由 |
---|---|---|
yyz2191958 | + 2 | 赞一个! |
加载vmlinuz内核后,把initrd释放到内存盘中,initrd本身就是一个迷你版linux,,解开initrd会发现它的目录结构和linux的目录一样。根目录有个init有时候是个脚本。如果不是看看/sbin目录有没有init,或者/etc目录有没有inittab等。如果是systemd启动,init就是systemd的软连接。 |
本帖最后由 hilsonma 于 2024-6-14 20:31 编辑 2012zhiwen 发表于 2024-6-14 18:29 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 |
hd0,0是grub和grub4dos的表示设备的方法,linux中无法识别这种表示方法。/dev/hda1,/dev/hdb1,/dev/sda1,/dev/sdb1....... |
比如我的硬盘就三个分区,第一个分区esp分区,第二个分区ext4分区,最后一个ntfs分区。如果有多个硬盘,不知道哪个是sda1,这得看脚本是如何查找判断的? |
本帖最后由 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 硬盘的第一和第二个分区。 |
livemedia字面上应该是启动介质吧?应该写成/dev/sdx这种,如:/dev/sda1表示第一个sata硬盘的第一个分区,也可以使用UUID和磁盘卷标来定位吧?livemain后面跟着目录名。 |
my9823 发表于 2024-6-14 16:52 请问下,下面的两个参数如何用呢 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". |
拿partedmagic来说,它基于slackware,看看/etc/inittab,/etc/rc.d/rc.S这个脚本。 |
initrd/boot/initrd.xz 看到这句没?先用xz -d initrd.xz解开,再用file命令查看initrd格式,确定解压方法。 找个ext3或者ext4分区,因为linux中有硬链接,其他分区格式怕丢失文件。 如果是基于slackware的应该不是systemd启动,一般是脚本,找吧! |
2012zhiwen 发表于 2024-6-14 11:48 你原来不是在grub4dos区发贴了吗?怎么又发到grub2区来了。 不知道你现在要操作什么? 对于linux启动参数的处理,一般是依照安装光盘的参数来操作。除非你对这个系统非常熟悉了,对于镜像的内容也了然,就可以按自己的意愿去设置参数。 启动参数是要跟镜像内容匹配的,如果不熟悉镜像的内容,也不熟悉参数的具体运用,那还是照搬安装光盘为好。 |
my9823 发表于 2024-6-14 11:45 这个要怎么处理呢 |
这个需要看看它的initrd是如何处理这个参数的,内核后边的参数有的是内核处理,有的是initrd或者initramfs处理 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.