USB 디스크의 /dev/disk/by-id에서 ata 스타일 ID를 어떻게 얻나요?

USB 디스크의 /dev/disk/by-id에서 ata 스타일 ID를 어떻게 얻나요?

USB 드라이브 도크가 있고 거기에 SATA 드라이브를 연결하고 있습니다. 나타나는 방식은 /dev/disk/by-id드라이브에 파티션 테이블이 있는지 여부에 따라 달라지는 것 같습니다( usb없는 경우에도 ata). 이로 인해 ZFS 사용이 약간 어색해졌습니다.

새 드라이브의 초기 상태:

% ls -alF /dev/disk/by-id | grep sdd              
lrwxrwxrwx 1 root root   9 Nov 18 20:47 usb-WDC_WD30_EFRX-68EUZN0_000000000012-0:0 -> ../../sdd

파티션 테이블 생성은 /dev/disk/by-id해결되었지만 드라이브가 사용하던 경로에서 사라져서 ZFS가 혼란스러워졌습니다.

% sudo zpool create -f -o ashift=12 offsite_3TB -m /mnt/offsite_3TB /dev/disk/by-id/usb-WDC_WD30_EFRX-68EUZN0_000000000012-0:0
cannot resolve path '/dev/disk/by-id/usb-WDC_WD30_EFRX-68EUZN0_000000000012-0:0-part1': 2

초기 댄스가 완료되면 모든 것이 예상대로 작동합니다.

% ls -alF /dev/disk/by-id | grep sdd
lrwxrwxrwx 1 root root   9 Nov 18 21:22 ata-WDC_WD30EFRX-68EUZN0_WD-WCC4NPUZ4ZFR -> ../../sdd
lrwxrwxrwx 1 root root  10 Nov 18 21:22 ata-WDC_WD30EFRX-68EUZN0_WD-WCC4NPUZ4ZFR-part1 -> ../../sdd1
lrwxrwxrwx 1 root root  10 Nov 18 21:22 ata-WDC_WD30EFRX-68EUZN0_WD-WCC4NPUZ4ZFR-part9 -> ../../sdd9
lrwxrwxrwx 1 root root   9 Nov 18 21:22 wwn-0x50014ee260198109 -> ../../sdd
lrwxrwxrwx 1 root root  10 Nov 18 21:22 wwn-0x50014ee260198109-part1 -> ../../sdd1
lrwxrwxrwx 1 root root  10 Nov 18 21:22 wwn-0x50014ee260198109-part9 -> ../../sdd9
% sudo zpool create -f -o ashift=12 offsite_3TB -m /mnt/offsite_3TB /dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4NPUZ4ZFR

(성공적으로 완료되었습니다)

이 시퀀스 중에는 아무것도 꺼내지지 않습니다.

처음 삽입 시 kern.log:

kernel: [1540491.548519]  sdd: unknown partition table

zpool이 생성된 후:

kernel: [1542568.022312]  sdd: sdd1 sdd9
kernel: [1542625.260285]  sdd: sdd1 sdd9

왜 바뀌었나요 /dev/disk/by-id? ata드라이브가 SATA 버스에 직접 있는지 아니면 USB 도크에 있는지에 따라 경로가 변경되는 것을 원하지 않기 때문에 이러한 스타일 경로는 정확히 내가 원하는 것입니다.ata의도적으로 zpool 생성을 실패하지 않고 스타일 ID를 표시 하는 더 우아한 방법이 있습니까 ?

FWIW, ZFS-on-Linux PPA가 포함된 Ubuntu 14.04.

관련 정보