Вам нужно использовать losetup -P
для создания -P
созданное устройство цикла, иначе вам нужно разделить исходное устройство цикла, а затем partx -u
pdate таблицу разделов ядра. Устройства / dev / loop0p
появятся после того, как ядро распознает, что раздел действительно был разбит на разделы. Вероятно, это отчасти то, что подразумевается за сном 5
- но это почти наверняка должна быть синхронизация
- или и то, и другое - вместо этого.
В любом случае, чтобы продемонстрировать:
sudo sh -s <<\IN
losetup -D
fallocate "-l$((1024*1024*1024))" loop
printf %s\\n n '' '' '' '' w y | gdisk loop
sync; losetup -f loop
lsblk /dev/loop*
IN
Таким образом, приведенная выше последовательность сначала -D
очищает все текущие устройства контура (если есть) fallocate
в tmp-файле размером 1 ГБ, записывает Таблица разделов GPT для него и делает на нем один раздел, затем синхронизирует
файловую систему и назначает ее первому доступному устройству цикла -f
, прежде чем пытаться внести в список с помощью lsblk
все доступные устройства шлейфа. Он напечатает:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1G 0 loop
Но , если я изменю строку losetup
на:
losetup -fP loop
... вместо этого он напечатает:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1G 0 loop
├─loop0p1 259:0 0 1023M 0 loop
└─loop0p2 259:1 0 1007K 0 loop
... потому что сначала losetup
сканирует резервный файл в поисках таблицы разделов.Как видите, он не очень хорош в этом - вместо того, чтобы отмечать лишний 1M (который почти определенно является таблицей разделов последней итерации, на самом деле) как нераспределенное пространство, он интерпретирует его как отдельный раздел, но это вероятно, потому что я пишу в tmpfs (дважды подряд) в верхней части файловой дыры размером 1 ГБ - работа с фактическими данными будет намного точнее (и обнуление файла резервной копии как ваш сценарий делает w / dd
все равно справится с этим) . В любом случае - я могу свободно mkfs.whatever
на реальном разделе там, а потом смонтировать
его. partx -u
в / dev / loop0
даст те же результаты.
Вот решение, использующее grep
и cut
для анализа выводаxrdb -query
:
xrdb -query | grep "URxvt.internalBorder" | cut -f 2
возвращает 30
. Другой пример:
xrdb -query | grep "*color14" | cut -f 2
возвращает #d65d0e
.
Перевод:
xrdb -query
выводит текущие ~/.Xresources
свойства grep "foo.bar"
получает строку, в которой определено конкретное свойство cut -f 2
получает второе "поле", исключая первое свойство