Found volume group "fedora_desktop-ld77fgg" using metadata type lvm2
# vgchange -a y fedora_desktop--ld77fgg
Когда команда vgscan
сообщает вам имя VG, вы можете использовать его как есть с командой vgchange
-вам не нужно удваивать тире.
A mini-summary of Logical Volume Manager (LVM):
- In order to use LVM, you can initialize partitions or entire disks as LVM Physical Volumes (PVs)...
- ... and you use one or more PVs to create a Volume Group (VG), which is basically treated as an uniform pile of raw storage space, which you can then freely slice into...
- ..one or more LVM Logical Volumes (LVs). A single LV can span more than one PV: even if it's made out of many disjoint pieces, a filesystem placed on it will see it as a single logically continuous unit of storage. And a LV can be migrated from one place to another within the VG, while the LV is mounted and in use.
Вам нужно будет сделать это только с путями :, так как формат /dev/mapper/<VG name>-<LV name>
, любые неизмененные одиночные дефисы в пути сделают его двусмысленным :любая программа, обрабатывающая имя, не будет знать, какой тире является частью имени и отделяет части <VG name>
и <LV name>
друг от друга.
Похоже, вы думали, что порядок контейнеров был:
disk -> partition -> LUKS wrapper -> PV -> LV -> filesystem
но отсутствие необходимости указывать фразу-пароль при попытке запуска cryptsetup luksOpen
и сообщение об ошибке при попытке монтирования /dev/fedora_desktop-ld77fgg/03
предполагают, что фактический порядок вещей:
disk -> partition -> PV -> LV -> LUKS wrapper -> filesystem
Чтобы убедиться в этом, проверьте, действительно ли cryptsetup luksOpen /dev/mapper/loop0p3 mylvm
вы создали /dev/mapper/mylvm
устройство или нет. Я подозреваю, что он мог вообще ничего не делать.
Вместо этого теперь следует выполнить:
# cryptsetup luksOpen /dev/fedora_desktop-ld77fgg/03 myfs
<answer the passphrase prompt>
# mount /dev/mapper/myfs /tmp/hej
cat - 3>"$in" >&3 &
Если вы запустите это из сценария, стандартный ввод cat
будет перенаправлен с /dev/null
.
Если вы запустите его из интерактивной оболочки, cat
будет остановлен сигналом SIGTTIN
.
В любом случае он ничего не запишет в канал "$in"
.
Если это часть скрипта, "решение" (пугает кавычками, потому что мне не совсем понятно, что вы пытаетесь сделать )— это "сохранить" стандартный ввод с exec [fd]<&0
перенаправлением, и затем перенаправьте ввод фонового процесса с этого [fd]
. Сравните:
echo yes | sh -c 'cat & sleep 1'
, который ничего не записывает в стандартный вывод, с
echo yes | sh -c 'exec 5<&0; cat <&5 & sleep 1'
что подойдет.