У меня есть скрипт, который я запускаю для оптимизации дискового пространства перед резервным копированием виртуального гостя (на самом деле не имеет большого значения, какой гипервизор используется).
Современные версии Ubuntu (например, 18.04), по-видимому, используют по умолчанию /swapfile
вместо раздела. Это тоже хорошо.
Однако я хотел бы обнулить файл подкачки вместе с корневым разделом, в котором он находится.
С разделами подкачки это было относительно безболезненно, поскольку всегда был способ извлечь существующий $UUID
из раздела подкачки и - после обнуления раздела - запустить mkswap -U $UUID
для воссоздания указанного раздела подкачки.
Тем не менее, /swapfile
я не вижу, как это сделать. Хотя я понимаю, что вы не можете подключить /swapfile
UUID /etc/fstab
, я все равно хотел бы сохранить UUID.
Поэтому я считаю, что нужно одно из следующих действий:
- Мне нужен метод, который может обнулить файл подкачки, не стирая при этом те структуры, которые делают его разделом подкачки (т.е. избежать необходимости запуска
mkswap -U $UUID
) - Мне нужен метод для извлечения существующего UUID из файла подкачки (в отличие от раздела, где я могу использовать что угодно, от
blkid
просмотра/dev/disk/by-uuid/$UUID
...)
blkid
с параметром. Думаю, я должен делать это, а не, например, использоватьdd
со смещением.blkid
. В зависимости от версии вы можетеblkid swap -o value -s uuid
извлечь только UUID.blkid -o export <file>
который я перехожу,sed
чтобы присоединитьсяlocal
к каждой строке и затемeval
использовать Bash. Таким образом, у меня есть значения в моей функции как локальные переменные среды сразу.