OpenSUSE 12.2 시스템에 외장 eSATA 하드 드라이브가 있습니다. 외장 하드 드라이브의 dm-crypt 파티션에 LVM이 있습니다.
전원을 켜서 설치했는데
rescan-scsi-bus.sh
cryptsetup -v luksOpen
vgchange -ay
mount
이제 하드 드라이브의 전원을 끄고 싶을 때 이렇게 합니다.
umount
vgchange -an extern-1
cryptsetup -v remove /dev/mapper/extern-1-crypt
echo 1 >/sys/block/sdf/device/delete
여기의 device()는 sdf
현재 스크립트에 하드코딩되어 있습니다. 스크립트의 VG 또는 암호화된 장치에서 추론할 수 있나요?
답변1
예, 거기에서 정보를 찾을 수 있습니다 /sys/block/$DEVICE/slaves
. 표준 이름만 있는 경우 이를 사용하여 readlink
세부정보를 얻을 수 있습니다. 예를 들면 다음과 같습니다.
devdm="$(readlink -f /dev/mapper/extern-1-crypt)"
dm="${devdm#/dev/}"
ls /sys/block/$dm/slaves/
모든 것을 삭제하려면 sys
파일 시스템을 직접 사용할 수 있습니다.
echo 1 > /sys/block/$dm/slaves/*/../device/delete
답변2
많은 가능성이 있습니다:
:> # 1
:> pvscan
:> # 2
:> vgscan -v extern-1
:> # 3
:> dmsetup table /dev/mapper/extern-1-crypt
:> # 4
:> cd /sys/devices/virtual/block/
:> for dmdev in dm-*; do
:> if [ xyz = $(< "${dmdev}/dm/name") ]; then
:> ls -l "${dmsev}/slaves/"
:> fi
:> done
또는 "dm-" 번호를 얻으세요 dmsetup ls
.
편집 1:
글쎄요, 단순한 가능성을 제외한 모든 것이 있는 것 같습니다. Ulrich의 답변을 읽은 후 나 자신이 웃었습니다. /dev/mapper
비록 행복하게 사용해왔지만 분명히 오랫동안 그것에 관심을 기울이지 않았습니다.