Объединенный Патч: только используйте различный файл

Вот статья в блоге, которая охватывает Многие операции для приготовления виртуальной машины для клонирования, включая:

  • Услуги стоп-регистрации
  • Удалить старые ядра
  • Clean Yum / APT-Get Cheate
  • Поворотные журналы
  • журналы аудита
  • УДАЛЕНИЯ UDEV Устройства
  • MAC-адрес и UUID
  • / TMP
  • HOST SSH Клавиши
  • Клавиши SSH root
  • История Bash

Автор затем рекомендует обнулить Пустое пространство и изменение размера LVM Gouous

0
28.02.2015, 12:35
1 ответ

Необходимо использовать 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

Так вышеупомянутая последовательность сначала -Detaches все устройства токовой петли (если таковые имеются) fallocate с 1 ГБ tmp файл, пишет таблицу разделов GPT ему и делает единственное разделение на нем, тогда синхронизация с файловая система и назначает его на -first доступное устройство петли прежде, чем попытаться перечислить с 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 будет иметь те же результаты.

-121--108668-

Если проверить manpage с помощью «man mkpasswd», вы увидите, что эта команда также принимает необязательный параметр -S, --salt = STRING Если его опустить, будет использоваться случайное значение соли, и поэтому зашифрованное значение пароля также будет другим.

Если вы предоставляете соль,

mkpasswd -m sha-512 password -s "11223344"
$6$11223344$YzaRt.fnidpXmKw.Dl20htfOrJ8X2Yx3V.h5zUlhlN2SdczempQmQcDcMYd6mHiXlaMqyGt200zDwuZiC8ZZw1

вы всегда получаете один и тот же результат.

Кстати, значение соли можно увидеть в самом начале выходной строки: это значение от $ от 8 до 16 символов длиной.

-121--37413-

Другой пользователь просто использует патч, попробуйте сначала:

patch --dry-run -p0 < file.diff

Возможно, вам потребуется настроить параметр -p (или удалить его) в соответствии с тем, как вы передали параметры папки в «diff» и из какой папки вы применяете патч, проверьте руководство патча для получения более подробной информации. Но обычно -p0 работает нормально, если другой пользователь применяет патч в «том же месте», в котором вы создали патч.

Как только вы увидите, что команда patch работает без отклонений,можно удалить параметр --dry-run , чтобы фактически применить его.

1
28.01.2020, 02:51

Теги

Похожие вопросы