설명할 수 없는 이러한 동작이 발생했습니다. sysfs에는 심볼릭 링크가 있지만 나에게는 불가능해 보입니다.
me@test:/sys/block/sde$ ll
...
lrwxrwxrwx 1 root root 0 Oct 1 2019 device -> ../../../8:0:0:0
...
me@test:/sys/block/sde$ cd ../../../8:0:0:0
me@test:/sys/devices/pci0000:00/0000:00:17.0/usb2/2-1/2-1:1.3/host8/target8:0:0/8:0:0:0$
하지만 레벨 3에서는 루트 폴더로 이동할 수 있는 것 같은데 어떻게 이런 일이 발생합니까?
me@test:/sys/block/sde$ cd ../../../
me@test:/$
답변1
같은 문제가 있습니다. 기호 링크는 그 자체가 기호 링크이기 때문에 /sys/block/sda/device
상대적입니다 . 예:/sys/devices
/sys/block/sda
USB에 연결된 SATA 드라이브 -> SATA 어댑터
# ls -l /sys/block/sda
/sys/block/sda -> ../devices/pci0000:00/0000:00:08.1/0000:06:00.3/usb5/5-2/5-2.2/5-2.2:1.0/host0/target0:0:0/0:0:0:0/block/sda/
# readlink /sys/block/sda/device
../../../0:0:0:0
# readlink -e /sys/block/sda/device
/sys/devices/pci0000:00/0000:00:08.1/0000:06:00.3/usb5/5-2/5-2.2/5-2.2:1.0/host0/target0:0:0/0:0:0:0
/sys/block/sda
는 해당 장치에 대한 심볼릭 링크이므로 해당 전체 경로를 /sys/devices
적용하면 심볼릭 링크 접미사가 참조하는 디렉터리가 있는 위치 ../../..../
로 이동됩니다 ./sys/devices/pci0000:00/0000:00:08.1/0000:06:00.3/usb5/5-2/5-2.2/5-2.2:1.0/host0/target0:0:0/
0:0:0:0
/sys/block/sda/device
참고 사항: /sys/devices
장치에서 시작되는 UDEV 경로는 다음을 통해 얻을 수 있습니다 udevadm
.
# udevadm info --query=path /sys/block/sda
/devices/pci0000:00/0000:00:08.1/0000:06:00.3/usb5/5-2/5-2.2/5-2.2:1.0/host0/target0:0:0/0:0:0:0/block/sda
이번에는 NVME 드라이브가 플랫(마더보드) NVMe 포트에 연결된 또 다른 예입니다.
# ls -l /sys/block/nv*
/sys/block/nvme0n1 -> ../devices/pci0000:00/0000:00:02.1/0000:01:00.0/nvme/nvme0/nvme0n1/
# readlink /sys/block/nvme0n1/device
../../nvme0
# readlink -e /sys/block/nvme0n1/device
/sys/devices/pci0000:00/0000:00:02.1/0000:01:00.0/nvme/nvme0
# udevadm info --query=path /sys/block/nvme0n1
/devices/pci0000:00/0000:00:02.1/0000:01:00.0/nvme/nvme0/nvme0n1