无忧启动论坛

标题: 如何获取文件在哪个分区,用变量如何接收这个数值 [打印本页]

作者: 2012zhiwen    时间: 2024-6-12 16:42
标题: 如何获取文件在哪个分区,用变量如何接收这个数值
本帖最后由 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文件在哪个分区呢。



作者: martin313    时间: 2024-6-12 16:59
这个要问 不点 大师
作者: hilsonma    时间: 2024-6-12 17:55
  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)
复制代码

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

请问这句  find %file1% | set dev=   作用是什么呢?
作者: martin313    时间: 2024-6-12 18:05
2012zhiwen 发表于 2024-6-12 18:00
请问这句  find %file1% | set dev=   作用是什么呢?

看3楼的代码

find %file1% | set dev=

这个是2个命令,| 前面是查找 ISO ,|后面是 设定 dev 等于这个ISO
作者: 2012zhiwen    时间: 2024-6-12 18:10
martin313 发表于 2024-6-12 18:05
看3楼的代码

find %file1% | set dev=

似乎明白了,dev=是用来接收这个iso文件所在的磁盘分区。
作者: hilsonma    时间: 2024-6-12 18:10
2012zhiwen 发表于 2024-6-12 18:00
请问这句  find %file1% | set dev=   作用是什么呢?

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

我还使用了file1变量,目的是不用重复输入目标文件的路径,方便修改也减少出错
作者: 2012zhiwen    时间: 2024-6-12 18:48
hilsonma 发表于 2024-6-12 18:10
就是按你的要求呀,前面不用 --set-root参数,这样就不会把找到的分区号存放到root变量
后面加 | set de ...

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

vol %dev%

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

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

这样, %dev% 分区的卷标就存放到变量 lbl 中了
作者: 2012zhiwen    时间: 2024-6-12 21:21
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文件的本身路径呢


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

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

我的提问是,%dev%返回的结果是(hd0,0),还是sda1呢?因为livemedia不接受(hd0,0)这样的参数
作者: hilsonma    时间: 2024-6-12 22:43
本帖最后由 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参数),浏览网页好象也没有问题 (我只大概试了一下浏览本论坛)


作者: 2012zhiwen    时间: 2024-6-13 11:57
hilsonma 发表于 2024-6-12 22:43
可以uuid或label呀

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

你提供的网址打不开,权限不够,。
作者: hilsonma    时间: 2024-6-13 12: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里有范例的。




重新看了一下,那个贴子是在 数码生活 版块的,应该这个版块现在设置了权限。你用你手上的版本吧。如果有问题可以把你那个版本放到网盘,给个链接我来看一下。
作者: 2012zhiwen    时间: 2024-6-13 12:17
hilsonma 发表于 2024-6-13 12:08
在本贴下,地址栏的网址 后面的 tid= 后面改成432019 试试
http://bbs.wuyou.net/forum.php?mod=viewthr ...

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


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

我放到 这里,24小时有效

作者: 2012zhiwen    时间: 2024-6-13 12:29
hilsonma 发表于 2024-6-13 12:24
我放到 这里,24小时有效

谢谢。我测试下。
作者: 2012zhiwen    时间: 2024-6-13 12:46
hilsonma 发表于 2024-6-13 12:24
我放到 这里,24小时有效

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

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




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3