回路设备的源路径


8

出于好奇,我想知道是否可以找到挂载分区的来源?

例如,输出df -h为:

/ dev / loop1 3M 3M 0 100%/ media / loop

从该输出中,我知道在处安装了3M的环路设备/media/loop,但是我不知道确定设备的确切位置/dev/loop1

root@SHW:~# mount -o loop /home/SHW/Downloads/TinyCore-current.iso
/mnt/loop mount: block device /home/SHW/Downloads/TinyCore-current.iso is write-protected, mounting read-only
root@SHW:~# tail -n1 /proc/mounts
/dev/loop1 /mnt/loop iso9660 ro,relatime 0 0

我如何找出/dev/loop1不知道是谁安装了这些分区的f 的绝对路径?(在这种情况下,路径为/home/SHW/Downloads/TinyCore-current.iso。)

Answers:


10

使用losetup--list选项

$ losetup --list /dev/loop0
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /tmp/backing-file

如果需要文件,请使用-O选项来选择列:

$ losetup --list --noheadings -O BACK-FILE /dev/loop0
/tmp/backing-file

此选项是的最新版本的一部分util-linux。早期版本仅支持该-a选项,该选项以难以处理的格式列出所有活动设备:

$ losetup -a
/dev/loop0: []: (/tmp/backing-file)

无论哪种方式,处理所需的内容都不会太繁琐。


一个也可以使用losetup /dev/(target)
neverMind9


-2

我不知道确定/ dev / loop1设备的确切位置。

/dev/loop1设备的确切位置是什么意思?/dev/loop*其中*是数字,是回送(虚拟)设备,用于装载不在其他块设备(例如硬盘)上的文件系统。您可以使用mount命令枚举它们并查看它们的安装位置,也可以使用命令设置新的位置losetup

如果您想知道/dev/节点连接到的物理设备,则可以通过多种方法来实现。您可以使用udevadm查询udev。在我的系统上,以下命令提供了有关sda磁盘的更多信息:

$ udevadm info --query=path --name=sda
/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sda
$ udevadm info --query=symlink --name=sda
disk/by-id/ata-ST3500418AS_6VMD78AY disk/by-id/wwn-0x5000c500224ac74f

除这些以外,您还可以lspci用来获取有关设备物理连接位置的更多信息。在我的系统上,/dev/sda已连接到sata控制器:

$ lspci
[snip]
00:1f.2 SATA controller: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
[snip]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.