Вот статья в блоге, которая охватывает Многие операции для приготовления виртуальной машины для клонирования, включая:
Автор затем рекомендует обнулить Пустое пространство и изменение размера LVM Gouous
Необходимо использовать losetup -P
для создания устройства с секционированным контуром -P
, иначе необходимо разделить исходное устройство с контуром, а затем partx -u
обновить таблицу разделов ядра. Устройства /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
etaches все устройства токовой петли (если таковые имеются) fallocate
с 1 ГБ tmp файл, пишет таблицу разделов GPT ему и делает единственное разделение на нем, тогда синхронизация
с файловая система и назначает его на -f
irst доступное устройство петли прежде, чем попытаться перечислить с 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 (два раза подряд) в верхней части отверстия для файла 1GB - работа с фактическими данными будет гораздо более точной (и обнуление резервного файла, как это делает сценарий с/ dd
будет обрабатывать это в любом случае) . В любом случае - я могу свободно mkfs.hatever
на реальном разделе там и после монтировать
его. partx -u
в /dev/loop0
будет иметь те же результаты.
Если проверить manpage с помощью «man mkpasswd», вы увидите, что эта команда также принимает необязательный параметр
-S, --salt = STRING
Если его опустить, будет использоваться случайное значение соли, и поэтому зашифрованное значение пароля также будет другим.
Если вы предоставляете соль,
mkpasswd -m sha-512 password -s "11223344"
$6$11223344$YzaRt.fnidpXmKw.Dl20htfOrJ8X2Yx3V.h5zUlhlN2SdczempQmQcDcMYd6mHiXlaMqyGt200zDwuZiC8ZZw1
вы всегда получаете один и тот же результат.
Кстати, значение соли можно увидеть в самом начале выходной строки: это значение от $
от 8 до 16 символов длиной.
Другой пользователь просто использует патч, попробуйте сначала:
patch --dry-run -p0 < file.diff
Возможно, вам потребуется настроить параметр -p (или удалить его) в соответствии с тем, как вы передали параметры папки в «diff» и из какой папки вы применяете патч, проверьте руководство патча для получения более подробной информации. Но обычно -p0
работает нормально, если другой пользователь применяет патч в «том же месте», в котором вы создали патч.
Как только вы увидите, что команда patch работает без отклонений,можно удалить параметр --dry-run
, чтобы фактически применить его.