无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 1127|回复: 23
打印 上一主题 下一主题

[求助] 如何获取文件在哪个分区,用变量如何接收这个数值

[复制链接]
跳转到指定楼层
1#
发表于 2024-6-12 16:42:27 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 2012zhiwen 于 2024-6-12 17:00 编辑

  1、比如在某个分区找到了一个ISO,希望给某个变量赋值这个iso所在的分区,比如给这个变量赋值(hd0,0)或者(hd0,1)或者(hd1,1)。
  2、假如我在grub4dos用了  find --set-root /ISOS/wifislax64-3.3-final.iso   这个功能找到了这个iso文件,请问这个功能后面需要加什么参数才能知道这个iso文件在哪个分区呢。


点评

淡定  发表于 2024-6-12 17:00

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 淡定

查看全部评分

23#
发表于 2024-6-15 16:10:39 | 只看该作者
感谢
回复

使用道具 举报

22#
发表于 2024-6-13 12:52:05 | 只看该作者
2012zhiwen 发表于 2024-6-13 12:46
测试可以了,谢谢,请问下,这个版本号的多少呢,我之前用的是wifislax64-3.3-final.iso和wifislax64-3.4 ...

wifislax64-3.0-final-汉化版_By_minchengan.iso
回复

使用道具 举报

21#
 楼主| 发表于 2024-6-13 12:46:45 | 只看该作者
hilsonma 发表于 2024-6-13 12:24
我放到 这里,24小时有效

测试可以了,谢谢,请问下,这个版本号的多少呢,我之前用的是wifislax64-3.3-final.iso和wifislax64-3.4-final.iso

点评

wifislax64-3.0-final-汉化版_By_minchengan.iso  详情 回复 发表于 2024-6-13 12:52
回复

使用道具 举报

20#
 楼主| 发表于 2024-6-13 12:29:07 | 只看该作者
hilsonma 发表于 2024-6-13 12:24
我放到 这里,24小时有效

谢谢。我测试下。
回复

使用道具 举报

19#
发表于 2024-6-13 12:24:46 | 只看该作者
本帖最后由 hilsonma 于 2024-6-13 12:28 编辑
2012zhiwen 发表于 2024-6-13 12:17
还是不行,权限问题,我看你的界面是中文的,。但我的是英文的,想要下中文的版本

我放到 这里,24小时有效

点评

测试可以了,谢谢,请问下,这个版本号的多少呢,我之前用的是wifislax64-3.3-final.iso和wifislax64-3.4-final.iso  详情 回复 发表于 2024-6-13 12:46
谢谢。我测试下。  详情 回复 发表于 2024-6-13 12:29
回复

使用道具 举报

18#
 楼主| 发表于 2024-6-13 12:17:01 | 只看该作者
hilsonma 发表于 2024-6-13 12:08
在本贴下,地址栏的网址 后面的 tid= 后面改成432019 试试
http://bbs.wuyou.net/forum.php?mod=viewthr ...

还是不行,权限问题,我看你的界面是中文的,。但我的是英文的,想要下中文的版本

点评

我上传了文叔叔,24小时有效 https://f.ws59.cn/f/ecfyjgmmv5k  详情 回复 发表于 2024-6-13 12:24
回复

使用道具 举报

17#
发表于 2024-6-13 12:08:08 | 只看该作者
本帖最后由 hilsonma 于 2024-6-13 12:15 编辑
2012zhiwen 发表于 2024-6-13 11:57
你提供的网址打不开,权限不够,。

在本贴下,地址栏的网址 后面的 tid= 后面改成432019 试试
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=432019

如果还是不能打开,那就是那个贴子设置了权限。

你用你手中的版本也可以的,只需要细心看一下文件名,应该没有改变吧。还有就是引导参数看有没有改变,iso里有范例的。




重新看了一下,那个贴子是在 数码生活 版块的,应该这个版块现在设置了权限。你用你手上的版本吧。如果有问题可以把你那个版本放到网盘,给个链接我来看一下。

点评

还是不行,权限问题,我看你的界面是中文的,。但我的是英文的,想要下中文的版本  详情 回复 发表于 2024-6-13 12:17
回复

使用道具 举报

16#
 楼主| 发表于 2024-6-13 11:57:07 | 只看该作者
hilsonma 发表于 2024-6-12 22:43
可以uuid或label呀

我在本论坛找了一个wifislax3.0 试了一下。

你提供的网址打不开,权限不够,。

点评

在本贴下,地址栏的网址 后面的 tid= 后面改成432019 试试 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=432019 [attachimg]542981[/attachimg]  详情 回复 发表于 2024-6-13 12:08
回复

使用道具 举报

15#
发表于 2024-6-12 22:43:05 | 只看该作者
本帖最后由 hilsonma 于 2024-6-13 06:21 编辑
2012zhiwen 发表于 2024-6-12 22:05
我的提问是,%dev%返回的结果是(hd0,0),还是sda1呢?因为livemedia不接受(hd0,0)这样的参数

可以uuid或label呀

我在本论坛找了一个wifislax3.0 试了一下。
先把下载的iso命名为 wifislax30.iso 放到某分区的 wifislax 文件夹中
再提取 vmlinuz 和 initrd.xz 这两个文件放到这个 wifislax 文件夹中
最后菜单如下配置:
  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
复制代码


成功进入了wifislax 桌面,点 chrome 进入本论坛看了一下,还可以,就是字体太小,不好看。

如果内存太少就会卡。
我先试了4G的老机子,启动卡住了,把菜单引导项中的 toram 参数去掉后,可以启动到桌面,但进chrome浏览论坛又卡住了。
后来试了16G的机子,可以内存运行(使用toram参数),浏览网页好象也没有问题 (我只大概试了一下浏览本论坛)

点评

你提供的网址打不开,权限不够,。  详情 回复 发表于 2024-6-13 11:57
回复

使用道具 举报

14#
 楼主| 发表于 2024-6-12 22:05:30 | 只看该作者
本帖最后由 2012zhiwen 于 2024-6-12 22:07 编辑
hilsonma 发表于 2024-6-12 21:34
这个参数是指定live os所在的iso的
你得给出这个iso的绝对路径
怎么让引导程序自动获取呢?我不明白你 ...

我的提问是,%dev%返回的结果是(hd0,0),还是sda1呢?因为livemedia不接受(hd0,0)这样的参数

点评

可以uuid或label呀 具体用法看一下iso本身的范例,我对linux系统不熟悉  详情 回复 发表于 2024-6-12 22:43
回复

使用道具 举报

13#
发表于 2024-6-12 21:34:44 | 只看该作者
2012zhiwen 发表于 2024-6-12 21:21
谢谢。我刚刚在wifislax64的iso文件中看到这样的描述,如下
1、livemedia=/dev/sdX => Tell the init sc ...

这个参数是指定live os所在的iso的
你得给出这个iso的绝对路径
怎么让引导程序自动获取呢?我不明白你的提问。

点评

我的提问是,%dev%返回的结果是(hd0,0),还是sda1呢?  详情 回复 发表于 2024-6-12 22:05
回复

使用道具 举报

12#
 楼主| 发表于 2024-6-12 21:21:00 | 只看该作者
hilsonma 发表于 2024-6-12 20:55
可如下获取卷标

这样, %dev% 分区的卷标就存放到变量 lbl 中了

谢谢。我刚刚在wifislax64的iso文件中看到这样的描述,如下
1、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.

2、livemedia=/dev/sdX:/path/to/live.iso => Use this if you want to
  load the live OS from an ISO file on a local harddisk partition.

个人猜想第1的livemedia=后面参数可以是UUID,或者是LABEL(既卷标),然而第2个的livemedia=后面的就是硬盘分区路径+iso文件,但是这个路径要怎样才能自动获取到iso文件的本身路径呢

点评

这个参数是指定live os所在的iso的 你得给出这个iso的绝对路径 怎么让引导程序自动获取呢?我不明白你的提问。  详情 回复 发表于 2024-6-12 21:34
回复

使用道具 举报

11#
发表于 2024-6-12 20:55:13 | 只看该作者
本帖最后由 hilsonma 于 2024-6-12 21:09 编辑
2012zhiwen 发表于 2024-6-12 18:48
明白了。谢谢。还有一个问题。同样的情况,如何获取该iso文件所在分区的label,即卷标

可如下获取卷标
  1. vol %dev%
  2. set lbl=%?%
复制代码

这样, %dev% 分区的卷标就存放到变量 lbl 中了

点评

谢谢。我刚刚在wifislax64的iso文件中看到这样的描述,如下 1、livemedia=/dev/sdX => Tell the init script which partition contains the Wifislax64 Live OS you want to boot. This can become necessary  详情 回复 发表于 2024-6-12 21:21
回复

使用道具 举报

10#
发表于 2024-6-12 20:03:14 | 只看该作者
小白学习
回复

使用道具 举报

9#
发表于 2024-6-12 19:24:32 | 只看该作者
2012zhiwen 发表于 2024-6-12 18:48
明白了。谢谢。还有一个问题。同样的情况,如何获取该iso文件所在分区的label,即卷标

vol %dev%

试试看
回复

使用道具 举报

8#
 楼主| 发表于 2024-6-12 18:48:15 | 只看该作者
hilsonma 发表于 2024-6-12 18:10
就是按你的要求呀,前面不用 --set-root参数,这样就不会把找到的分区号存放到root变量
后面加 | set de ...

明白了。谢谢。还有一个问题。同样的情况,如何获取该iso文件所在分区的label,即卷标

点评

如何获取卷标,我也不知道。 9楼的命令可以查询卷标,会获得类似如下的提示: (hd0,0): Volume Name is "SZXH2" . 双引号里的内容就是卷标,如何截取,我不懂。  详情 回复 发表于 2024-6-12 20:55
vol %dev% 试试看  详情 回复 发表于 2024-6-12 19:24
回复

使用道具 举报

7#
发表于 2024-6-12 18:10:39 | 只看该作者
2012zhiwen 发表于 2024-6-12 18:00
请问这句  find %file1% | set dev=   作用是什么呢?

就是按你的要求呀,前面不用 --set-root参数,这样就不会把找到的分区号存放到root变量
后面加 | set dev= 意思就是把找到的分区号存放到 dev 这个变量中

我还使用了file1变量,目的是不用重复输入目标文件的路径,方便修改也减少出错

点评

明白了。谢谢。还有一个问题。同样的情况,如何获取该iso文件所在分区的label,即卷标  详情 回复 发表于 2024-6-12 18:48
回复

使用道具 举报

6#
 楼主| 发表于 2024-6-12 18:10:22 | 只看该作者
martin313 发表于 2024-6-12 18:05
看3楼的代码

find %file1% | set dev=

似乎明白了,dev=是用来接收这个iso文件所在的磁盘分区。
回复

使用道具 举报

5#
发表于 2024-6-12 18:05:02 | 只看该作者
2012zhiwen 发表于 2024-6-12 18:00
请问这句  find %file1% | set dev=   作用是什么呢?

看3楼的代码

find %file1% | set dev=

这个是2个命令,| 前面是查找 ISO ,|后面是 设定 dev 等于这个ISO

点评

似乎明白了,dev=是用来接收这个iso文件所在的磁盘分区。  详情 回复 发表于 2024-6-12 18:10
回复

使用道具 举报

4#
 楼主| 发表于 2024-6-12 18:00:17 | 只看该作者
hilsonma 发表于 2024-6-12 17:55
这一句本身就将iso所在分区存放到grub变量root中了
因为root变量是默认值,所以可以直接省略

请问这句  find %file1% | set dev=   作用是什么呢?

点评

就是按你的要求呀,前面不用 --set-root参数,这样就不会把找到的分区号存放到root变量 后面加 | set dev= 意思就是把找到的分区号存放到 dev 这个变量中 我还使用了file1变量,目的是不用重复输入目标文件的路  详情 回复 发表于 2024-6-12 18:10
看3楼的代码 find %file1% | set dev= 这个是2个命令,| 前面是查找 ISO ,|后面是 设定 dev 等于这个ISO  详情 回复 发表于 2024-6-12 18:05
回复

使用道具 举报

3#
发表于 2024-6-12 17:55:33 | 只看该作者
  1. find --set-root /ISOS/wifislax64-3.3-final.iso
复制代码

这一句本身就将iso所在分区存放到grub变量root中了
因为root变量是默认值,所以可以直接省略
  1. map /ISOS/wifislax64-3.3-final.iso (0xff)
  2. chainloader (0xff)
复制代码

相当于
  1. map %@root%/ISOS/wifislax64-3.3-final.iso (0xff)
  2. chainloader (0xff)
复制代码


如果想不改变root,使用其他变量,我会如下:
  1. set file1=/ISOS/wifislax64-3.3-final.iso
  2. find %file1% | set dev=
  3. map %dev%%file1% (0xff)
  4. chainloader (0xff)
复制代码

点评

请问这句 find %file1% | set dev= 作用是什么呢?  详情 回复 发表于 2024-6-12 18:00
回复

使用道具 举报

2#
发表于 2024-6-12 16:59:13 | 只看该作者
这个要问 不点 大师
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-27 06:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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