无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wengzhenquan
打印 上一主题 下一主题

[已解决]wifislax 3.0 提取文件grub2重新引导,mounting failed: No such device

    [复制链接]
31#
发表于 2024-6-17 11:57:16 | 只看该作者
my9823 发表于 2024-6-17 11:32
你试试在这个界面运行cat /proc/cmdline看看内核参数


回复

使用道具 举报

32#
发表于 2024-6-17 12:49:39 来自手机 | 只看该作者
恕我冒昧,livemedia不知道这个uuid有没有什么规则长度限制之类的,没见过uuid,怎么看上去像日期呢?
回复

使用道具 举报

33#
发表于 2024-6-17 12:53:03 | 只看该作者
2012zhiwen 发表于 2024-6-17 10:40
有时候用grub4dos的自动列表功能找到iso文件并且自动map成(0xff),这时候启动的就是这个iso镜像的内置 ...

内置菜单不需livemedia 和 livemain 这两个参数
因为 liveos 就在本卷默认目录
只有 liveos 不在 vmlinuz 分区时才需要指定liveos 在哪个分区
只有 liveos 不在 /wifislax64 目录时才需要指定 liveos 在哪个目录

同理,如果解开iso 时,只要你将 wifislax64 这个文件夹也放在解开后 vmlinuz 所在分区的根目录,那么也不需要指定 livemedia 和 livemain 这两个参数。

只有 vmlinuz 同分区根目录下没有 wifislax64 这个目录时,才需要使用 livemedia参数及或livemain参数。
或者你想让vmlinuz 引导指定分区指定目录时,才需要这两个参数。

使用这两个参数要正确,你提供的截图表明分区标识为空,所以引导失败进入救援模式
回复

使用道具 举报

34#
发表于 2024-6-17 12:58:03 | 只看该作者

uuid不多是这样的吗?

回复

使用道具 举报

35#
发表于 2024-6-17 14:16:53 | 只看该作者
my9823 发表于 2024-6-17 12:58
uuid不多是这样的吗?

iso9660文件系统的uuid就是这样的。
回复

使用道具 举报

36#
发表于 2024-6-17 14:18:19 | 只看该作者
本帖最后由 wintoflash 于 2024-6-17 14:20 编辑
2012zhiwen 发表于 2024-6-17 10:40
有时候用grub4dos的自动列表功能找到iso文件并且自动map成(0xff),这时候启动的就是这个iso镜像的内置 ...

你又弄错了。显然要参考“整体启动”的菜单。
但是根据你的情况,ISO的位置不是固定的,那把菜单放ISO内部并没有什么意义。
回复

使用道具 举报

37#
发表于 2024-6-17 15:06:40 来自手机 | 只看该作者
wintoflash 发表于 2024-6-17 14:16
iso9660文件系统的uuid就是这样的。

原来如此,多谢w大解惑。
回复

使用道具 举报

38#
发表于 2024-6-17 15:12:25 | 只看该作者
wintoflash 发表于 2024-6-17 14:18
你又弄错了。显然要参考“整体启动”的菜单。
但是根据你的情况,ISO的位置不是固定的,那把菜单放ISO内 ...

‘’整体启动‘’的菜单可以成功进入桌面,内置菜单和外置菜单都成功。但我的问题只要是用grub4dos的run模块之后就可以看到在哪个文件夹下有哪些iso镜像文件,假如我用run模块之后在ISOS文件夹下找到了wifislax64-3.0-final.iso镜像文件,然后按确认键,run模块就执行了map功能,这时候这个iso文件应该相当于解开在仿真磁盘,那这时候用“grub4do解开启动”的菜单就是失败。不知道我是否描述清楚呢。
回复

使用道具 举报

39#
发表于 2024-6-17 15:21:49 | 只看该作者
my9823 发表于 2024-6-17 12:49
恕我冒昧,livemedia不知道这个uuid有没有什么规则长度限制之类的,没见过uuid,怎么看上去像日期呢?

这个uuid是run模块自己对iso文件执行map之后的,应该是iso9660特有的格式
回复

使用道具 举报

40#
发表于 2024-6-17 15:41:57 | 只看该作者
hilsonma 发表于 2024-6-17 12:53
内置菜单不需livemedia 和 livemain 这两个参数
因为 liveos 就在本卷默认目录
只有 liveos 不在 vmlin ...

按照你的指示,不用livemedia和livemain这个两个参数,还是启动失败,也是提示找不到wifislax系统
回复

使用道具 举报

41#
发表于 2024-6-17 16:20:23 来自手机 | 只看该作者
关键是进入initrd这个迷你linux后,仿真的设备是否还存在?initrd.xz中应该有mount命令,运行不带参数的mount可以显示挂载的目录和设备。
回复

使用道具 举报

42#
发表于 2024-6-17 16:22:02 | 只看该作者
2012zhiwen 发表于 2024-6-17 15:41
按照你的指示,不用livemedia和livemain这个两个参数,还是启动失败,也是提示找不到wifislax系统

我不知道你那个版本是怎样的,我测试这个版本是这样

  1. title Wifislax64 Live UEFI
  2.   kernel /boot/vmlinuz kbd=us xkb=us locale=zh_CN.utf8 tz=Asia/Shanghai rw
  3.   initrd /boot/initrd.xz
  4. title Wifislax64 Live UEFI En RAM
  5.   kernel /boot/vmlinuz kbd=us xkb=us locale=zh_CN.utf8 tz=Asia/Shanghai rw toram
  6.   initrd /boot/initrd.xz
复制代码
回复

使用道具 举报

43#
发表于 2024-6-17 16:24:17 | 只看该作者
2012zhiwen 发表于 2024-6-17 15:12
‘’整体启动‘’的菜单可以成功进入桌面,内置菜单和外置菜单都成功。但我的问题只要是用grub4dos的run ...

不对。
这个仿真设备,只在 BIOS(UEFI) 环境下有效。进入任意系统后都是不存在的。
回复

使用道具 举报

44#
发表于 2024-6-17 16:25:32 | 只看该作者
hilsonma 发表于 2024-6-17 16:22
我不知道你那个版本是怎样的,我测试这个版本是这样

我的版本是3.3-final
回复

使用道具 举报

45#
发表于 2024-6-17 16:30:53 来自手机 | 只看该作者
本帖最后由 my9823 于 2024-6-17 16:33 编辑
wintoflash 发表于 2024-6-17 16:24
不对。
这个仿真设备,只在 BIOS(UEFI) 环境下有效。进入任意系统后都是不存在的。


w大,是不是说仿真对于那种只有内核和initrd的小型发型版能正常启动,毕竟加载内核后,接下来仿真设备还存在,还能找到initrd。就像slitaz这种迷你版的linux,因为它的initrd就是它的根目录。而其他体积大的,initrd还要查找真正压缩的根目录挂载,所以找不到。
回复

使用道具 举报

46#
发表于 2024-6-17 16:33:37 | 只看该作者
my9823 发表于 2024-6-17 16:30
w大,是不是说仿真对于那种只有内核和initrd的小型发型阿版能正常启动,毕竟加载内核后,接下来仿真设备 ...

对于任何操作系统 (包括 linux, windows),启动阶段的虚拟磁盘都是不存在的。
kernel (vmlinuz) 和 初始内存盘 (initrd) 是由启动管理器加载到内存的,所以可以位于虚拟设备上。
回复

使用道具 举报

47#
发表于 2024-6-17 16:33:47 | 只看该作者
本帖最后由 hilsonma 于 2024-6-17 16:57 编辑
2012zhiwen 发表于 2024-6-17 16:25
我的版本是3.3-final

你上传网盘后发个链接,我看过再写我的菜单给你参考。

这是我重新打包的 3.0 live os iso,24小时有效,你可以参考。


额,菜单中的uefi字眼应该去掉的,因为我重新打包的iso中,这个菜单是 bios/uefi 通用的,我忘记删除菜单中的 uefi 字眼了。

我试过,这个iso可以在run菜单中成功启动到桌面并浏览网站。
回复

使用道具 举报

48#
发表于 2024-6-17 16:35:24 | 只看该作者
wintoflash 发表于 2024-6-17 16:24
不对。
这个仿真设备,只在 BIOS(UEFI) 环境下有效。进入任意系统后都是不存在的。

这样就可以解释为什么找不到wifislax系统了,原来原因在这。。感谢🙏。所以livemedia指定的iso文件就交给wifislax处理,由它去处理仿真。
回复

使用道具 举报

49#
发表于 2024-6-17 16:36:49 来自手机 | 只看该作者
一到进入initrd就离开了启动程序的职责范围之内,毕竟启动程序只负责启动,后面的事情交给initrd了。
回复

使用道具 举报

50#
发表于 2024-6-17 17:32:06 来自手机 | 只看该作者
你可以试试把vmlinuz和initrd提取到iso之外,然后和这个iso一共三个文件放到磁盘上某个目录,启动是时试试,这样iso是真实存在,不知道他的启动参数支持不支持指定iso位置?
回复

使用道具 举报

51#
发表于 2024-6-17 17:38:02 | 只看该作者
记得以前有个发行版叫slax的,有个from参数,不知道这个wifislax和它啥关系?

from=        Load Slax data from specified directory
or even from an ISO file        from=/slax7/
from=/Downloads/slax.iso
from=http://domain.com/slax.iso
from=/dev/sda1/dir
from=ask
回复

使用道具 举报

52#
发表于 2024-6-17 18:00:00 | 只看该作者
本帖最后由 2012zhiwen 于 2024-6-17 18:21 编辑
hilsonma 发表于 2024-6-17 16:33
你上传网盘后发个链接,我看过再写我的菜单给你参考。

这是我重新打包的 3.0 live os iso,24小时有效 ...

直接用你的iso文件,不做任何更改,还是不成功,如下图。然后用了mount,不加参数



回复

使用道具 举报

53#
发表于 2024-6-17 18:07:27 | 只看该作者
my9823 发表于 2024-6-17 16:36
一到进入initrd就离开了启动程序的职责范围之内,毕竟启动程序只负责启动,后面的事情交给initrd了。

感谢这么多天的跟踪和解答。看来原因就在这了。
回复

使用道具 举报

54#
发表于 2024-6-17 19:09:41 | 只看该作者

这个是解开的initrd.xz

livemain=*)
      LIVEMAIN=$(echo $ARG | cut -f2 -d=)
    ;;
    livemedia=*)
      # generic syntax: livemedia=/dev/sdX
      # ISO syntax: livemedia=/dev/sdX:/path/to/live.iso
      LM=$(echo $ARG | cut -f2 -d=)
      LIVEMEDIA=$(echo $LM | cut -f1 -d:)
      LIVEPATH=$(echo $LM | cut -f2 -d:)
      unset LM
initrd.xz中的根目录有个init是个脚本,有段处理这两个参数。


往下有个scandev不知道怎么用,真是英文太差劲,无能为力啊!!!!if [ "$LIVEMEDIA" = "scandev" ]; then          # Scan partitions to find the one with the ISO and set LIVEMEDIA:
          echo -e "${MARKER}:  Scanning for '$LIVEPATH'..."
          for ISOPART in $(ret_partition $(blkid |cut -d: -f1)) $(ret_blockdev $(blkid |cut -d: -f1)) ; do
            PARTFS=$(blkid $ISOPART |rev |cut -d'"' -f2 |rev)
            # Abuse the $SUPERMNT a bit, we will actually use it later:
            mount -t $PARTFS -o ro $ISOPART ${SUPERMNT}
            if [ -f ${SUPERMNT}/${LIVEPATH} ]; then
              # Found our ISO!
              LIVEMEDIA=$ISOPART
              umount $ISOPART
              unset ISOPART
              break
            else
              umount $ISOPART
            fi

回复

使用道具 举报

55#
发表于 2024-6-17 19:28:39 | 只看该作者
本帖最后由 hilsonma 于 2024-6-17 19:42 编辑
2012zhiwen 发表于 2024-6-17 18:00
直接用你的iso文件,不做任何更改,还是不成功,如下图。然后用了mount,不加参数

我试过是成功的。你用我这套启动文件试试。

g4d.7z (2.49 MB, 下载次数: 5)

我怀疑你的run版本导致启动不成功,我这里用的是siso,内置了run的。菜单内置在grldr里了,你可以使用bootice编辑grldr内置菜单。

菜单第一项是 boot\bootmgr,必须将根目录原来的bootmgr复制一份放到 \boot 里
菜单第二项是 pe\bootpe ,这个是bmplus魔改的bootmgr,使用 \pe\bcd,下载包里的pe是空文件,请将你自己的pe的wim文件改名为boot.wim代替进去。
菜单第三项就是你的ISOs


之所以第一项的bootmgr放在boot里,是因为我使用g4d的方法就是将grldr改名为bootmgr替换到c盘根目录,原版的bootmgr就放到boot里了。这样就不用动mbr和pbr,也不用改原来的bcd菜单,就直接替换。
回复

使用道具 举报

56#
发表于 2024-6-17 20:24:27 | 只看该作者
my9823 发表于 2024-6-17 19:09
这个是解开的initrd.xz

livemain=*)

我前两天用过scandev,并且可以成功启动。
回复

使用道具 举报

57#
发表于 2024-6-17 22:42:13 | 只看该作者
原来是把iso挂载到/mnt/media目录下,在检测/mnt/media目录下有没有wifislax64目录,你可以尝试手动挂载,在运行根目录的init看看能不能启动?
回复

使用道具 举报

58#
发表于 2024-6-21 17:14:58 | 只看该作者
2012zhiwen 发表于 2024-6-17 18:00
直接用你的iso文件,不做任何更改,还是不成功,如下图。然后用了mount,不加参数

run模块是不能启动linux/linux.iso的。

点评

直接不能启动,但如果把菜单内置于iso内,还是可以启动的。本质还是grub4dos启动。  详情 回复 发表于 2024-6-23 19:12
回复

使用道具 举报

59#
发表于 2024-6-23 19:12:51 | 只看该作者
liuzhaoyzz 发表于 2024-6-21 17:14
run模块是不能启动linux/linux.iso的。

直接不能启动,但如果把菜单内置于iso内,还是可以启动的。本质还是grub4dos启动。
回复

使用道具 举报

60#
发表于 2024-6-25 09:46:16 | 只看该作者
本帖最后由 2012zhiwen 于 2024-6-25 09:47 编辑
hilsonma 发表于 2024-6-17 19:28
我试过是成功的。你用我这套启动文件试试。

你好,前几天没有时间测试,今天才测试,用的就是你的g4d.7z里面的文件,还是无法启动。提示还是找不到wifislax系统。所以正如49楼主的解释一样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-1 11:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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