无忧启动论坛

标题: grub-probe获取uuid的问题 [打印本页]

作者: adef    时间: 2017-3-8 11:30
标题: grub-probe获取uuid的问题
命令提示符管理员运行:
D:\迅雷下载\grub-2.02~rc1-for-windows>grub-probe --target=fs_uuid /boot/grub2
01D1A5ABA5885120

D:\迅雷下载\grub-2.02~rc1-for-windows>grub-probe --target=fs_uuid /ntldr
01D1A5ABA5885120

01D1A5ABA5885120其实是grub-probe.exe所在d盘的uuid,grub2目录其实在c盘,ntldr位于f盘。要得到C盘和f盘的uuid,需要把grub-2.02~rc1-for-windows文件夹分别挪到C盘和f盘各运行一次。
各位帮忙看看,是命令哪里没敲对么?
作者: 2011niumao    时间: 2017-3-8 19:38
是不是先search,再probe
  1.         search --no-floppy -f --set=aabbcc /casper/vmlinuz
  2.         probe -u --set=ddeeff ${aabbcc}
复制代码
ddeeff里面就是uuid.
作者: wintoflash    时间: 2017-3-9 20:31
我这里也是这样的,只能获取grub-probe所在盘的uuid。
作者: wintoflash    时间: 2017-3-10 10:56
本帖最后由 wintoflash 于 2017-3-10 11:06 编辑

感觉是不是在windows下不能这么写路径啊
/boot/grub2
/bootmgr
反正在linux下是不能这么写的。

作者: 窄口牛    时间: 2017-3-10 11:55
uuid就是Linux特有的吧?
作者: 不知    时间: 2017-3-10 15:54
在linux下运行blkid可以查看分区信息,其中包括uuid。
作者: 不知    时间: 2017-3-10 15:56
窄口牛 发表于 2017-3-10 11:55
uuid就是Linux特有的吧?

不是linux特有的,好像跟文件系统有关。
作者: 不知    时间: 2017-3-10 16:12
似乎要使用全路径,否则只会显示grub-probe所在分区的uuid.

作者: wintoflash    时间: 2017-3-11 08:40
不知 发表于 2017-3-10 16:12
似乎要使用全路径,否则只会显示grub-probe所在分区的uuid.

请问windows下能不能用通配符啊?
作者: 窄口牛    时间: 2017-3-11 09:13
win下只能用环境变量,通配符是不行。路径和Linux下的斜杠是相反方向。
作者: 窄口牛    时间: 2017-3-11 09:15
Linux有根,所以可以斜杠打头,win没有,所以要完整路径。
作者: 不知    时间: 2017-3-11 10:27
wintoflash 发表于 2017-3-11 08:40
请问windows下能不能用通配符啊?

似乎不能。


作者: 窄口牛    时间: 2017-3-11 10:35
这个获取的uuid和Linux下获取的一致?
作者: wintoflash    时间: 2017-3-11 10:47
窄口牛 发表于 2017-3-11 10:35
这个获取的uuid和Linux下获取的一致?

当然是一致的
作者: 窄口牛    时间: 2017-3-11 10:50
Usage: grub-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Probe device information for a given path (or device, if the -d option is
given).

  -0                         separate items in output using ASCII NUL
                             characters
  -d, --device               given argument is a system device, not a path
  -m, --device-map=FILE      use FILE as the device map
                             [default=C:\boot\grub/device.map]
  -t, --target=TARGET        print TARGET
                             available targets: abstraction, arc_hints,
                             baremetal_hints, bios_hints, compatibility_hint,
                             cryptodisk_uuid, device, disk, drive, efi_hints,
                             fs, fs_label, fs_uuid, gpt_parttype,
                             hints_string, ieee1275_hints, msdos_parttype,
                             partmap, zero_check [default=fs]
  -v, --verbose              print verbose messages.
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

作者: 窄口牛    时间: 2017-3-11 12:36
本帖最后由 窄口牛 于 2017-3-11 17:36 编辑

但是uuid有个问题,它是跟着卷标走的,相同的卷标就会值一样,所以并不科学。


  1. for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  2. grub-probe -t fs_uuid %%a:\>>1.txt
  3. )
复制代码



作者: 窄口牛    时间: 2017-3-12 09:40
未分配盘符的uuid就来不了了,比如64win10系统获取ext4分区的。
作者: wintoflash    时间: 2017-3-12 18:33
窄口牛 发表于 2017-3-12 09:40
未分配盘符的uuid就来不了了,比如64win10系统获取ext4分区的。

linux下可以用 grub-probe -t fs_uuid -d /dev/sda1 获取/dev/sda1的uuid,即使未挂载也可以。windows下怎么表示设备名呢?

作者: 窄口牛    时间: 2017-3-12 18:42
上面那个批处理就是win下获取所有分区的uuid,但是只支持有盘符的,没盘符的win无法读取。




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