Создайте восстановленный после форматирования раздел из освобожденного дискового пространства

Исходная спецификация формата Maildir была бы хорошим началом для ответа на вопрос.

Требование - то, что каждое новое сообщение будет храниться с уникальным именем.

Если Вы не пишете сообщения в maildir, формат уникального имени не Ваше дело.

Уникальное имя может быть чем-либо, что не содержит двоеточие (или наклонная черта) и не запускается с точки. Не пытайтесь извлечь информацию из уникальных имен.

Хорошо, таким образом, Вы пишете сообщения. Уникальное имя имеет три части, разделенные точками. Слева результат времени () или второй счетчик от gettimeofday (). Справа результат gethostname (). (Для контакта с недопустимыми именами хостов замените / \057 и: с \072.) В середине идентификатор доставки, обсужденный ниже.

...

Старомодные идентификаторы доставки используют следующие форматы для идентификатора доставки::

  • n, где n является идентификатором процесса, и где этот процесс был разветвлен для произведения одной поставки. К сожалению, некоторые глупые операционные системы повторяют идентификаторы процесса быстро, повреждая стандарт time+pid комбинация.
  • n_m, где n является идентификатором процесса, и m является количеством поставок, произведенных этим процессом.

Теперь вторая часть Вашего вопроса, просто помещает уникальное имя файла, не что-то, что можно настроить, если Вы не идете и изменяете исходный код локального курьера.

Обходное решение было бы .forward и передало бы электронную почту по каналу для сценариев, который будет хранить сообщение с именами файлов к симпатии, по существу создавая собственного локального курьера. Это должно быть довольно тривиально.

2
30.04.2015, 18:18
2 ответа

Я поставлю ответ здесь, раз уж понял.

Сначала я запрашиваю раскладку диска командой, похожей на вышеприведенную, но запрашиваю сектора единиц:

> parted /dev/sda unit s print free
Model: ATA Hitachi HUA72302 (scsi)
Disk /dev/sda: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End          Size         Type     File system  Flags
        63s         2047s        1985s                 Free Space
 1      2048s       65570815s    65568768s    primary               raid
 2      65570816s   66594815s    1024000s     primary  ext4         boot, raid
 3      66594816s   132163583s   65568768s    primary               raid
 4      132163584s  3907029167s  3774865584s  primary

заметка 132163584s, стартовый сектор свободного пространства (предыдущий конец раздела +1, если вы не используете переключатель свободный). Тогда остальное так же просто, как:

parted /dev/sda mkpart primary ext4 132163584s -- -1s

-1s - это конечный сектор, являющийся концом диска. -- использовать -1s в пакетном режиме и предотвращать ошибку parted: недействительная опция -- ошибка '1' (при выполнении parted в интерактивном режиме в этом нет необходимости).

3
27.01.2020, 22:05

Просто чтобы добавить еще один способ (с помощью fdiskкоманды )для создания раздела из нераспределенного пространства. fdiskдоступен в нескольких дистрибутивах Linux, по крайней мере Centos, Ubuntu и Debian имеют эту команду.

ВАЖНОЕ ПРИМЕЧАНИЕ:перед выполнением следующих команд убедитесь, что вы определили диск, с которым хотите работать, в моем случае это /dev/sda, но у вас может быть по-другому. Использование неподходящего диска может привести к поломке диска и данных .

Во-первых, проверьте, где находится нераспределенное пространство на вашем диске.

sudo parted /dev/sda unit s print free

Вывод показан на рисунке ниже, где мы видим, что имеется около 2 ГБ (. )нераспределенное пространство. Нераспределенное пространство соответствует строке с надписью «Свободное пространство» в столбце файловой системы.

       enter image description here

Затем запустите fdisk в интерактивном режиме.

sudo fdisk /dev/sda

После запуска fdiskвыполните следующие шаги:

  • Введите nдля создания нового раздела.
  • Введите pдля основного раздела (это мой случай, ваш может быть другим ).
  • Введите значение первого сектора вашего раздела (это значение вы можете получить из столбца «Старт» команды sudo parted /dev/sda unit s print free, т.е. из предыдущей картинки ). В моем случае это будет значение308582400(трейлинг sне нужен)
  • Введите значение конечного сектора вашего раздела (аналогично предыдущему шагу, это значение вы можете получить из столбца "Конец" команды sudo parted /dev/sda unit s print free, т.е. из предыдущей картинки ). В моем случае это снова будет значение 312581807(, трейлинг sне нужен)
  • Введите w, чтобы записать изменения на диск

После этого вам придется перезагрузить систему или выполнить команду sudo partprobe, чтобы сделать изменения разделов доступными для ядра.

На этом можно закончить, и у вас будет создан раздел. В случае, если вы хотите пометить свой раздел, потому что он будет иметь определенное использование, например. раздел подкачки, вы можете выполнить следующие шаги, прежде чем вводить букву wв команду fdisk(, т.е. перед записью изменений на диск, т.е. это означает, что приведенные ниже шаги заменяют предыдущий шаг «Введите wдля пиши..." ).

  • Введите tдля пометки вновь созданного раздела
  • Введите номер раздела, который нужно пометить, тот, который мы только что создали, в моем случае это будет3(fdiskкоманда сообщит вам номер, присвоенный вновь созданному разделу)
  • Введите тип раздела(82в моем случае для раздела подкачки, но вы можете ввести L, чтобы просмотреть все типы и выбрать тип, который вам подходит)
  • Введите w, чтобы записать изменения на диск

Ниже приведен снимок экрана, на котором показаны все предыдущие выполненные шаги и результат.

enter image description here

Окончательный результат после создания нового раздела показан ниже.Вы можете увидеть свой, выполнив следующую команду

sudo fdisk -l /dev/sda

       enter image description here

4
09.04.2020, 14:32

Теги

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