Удостоверьтесь, что петлевой корень и хост размонтированы на завершении работы

Это могло бы работать на Вас:

 awk '/^[0-9]/{a[$0]++}END{for(x in a)if(a[x]==1)print x}' file{1,2} >file3

Править:

Исправленный сценарий для обеспечения дубликатов и неизвестных ключей в обоих файлах, все еще производит ключи из первого файла, не существующего во втором:

 awk '/^[0-9]/{if(FNR==NR){a[$0]=1;next};if($0 in a){a[$0]=2}}END{for(x in a)if(a[x]==1)print x}' file{1,2} >file3
5
13.01.2013, 17:48
3 ответа

В случае, если у кого-то есть та же проблема:

Все, в чем я нуждался, должно было переместить точку монтирования файловой системы хоста к месту вне корневой файловой системы в сценарии завершения работы (это прекрасно, потому что это работает в a tmpfs корень центра), прежде чем любое размонтирование происходит:

mount --move /oldroot/run/initramfs/host /host

Это позволяет /oldroot размонтироваться чисто. Файловая система хоста может быть затем размонтирована с простым

umount /host
4
27.01.2020, 20:39
  • 1
    Вы возражали бы объяснять, куда этот сценарий завершения работы мог бы быть помещен?Спасибо! –  user541686 01.07.2017, 19:36
  • 2
    Вы могли объяснить, как записать тот сценарий завершения работы? –  Antonio Petricca 18.03.2018, 18:04

Существует некоторый прием Linux, чтобы сделать этот вид работы:

  • mount --move которые позволяют Вам подкачать файловую систему на точке монтирования
  • pivot_root которые работают с chroot для переключателя / корневая файловая система

Initialy, цель функции была:

  1. начальная загрузка ядра с initramdisk как корневая файловая система (резервирующий некоторых RAM для несжатого initrd).
  2. Все необходимые модули и сценарии для доступа к реальному корневому устройству инициируются в этом 1'st шаг начальной загрузки. (Это могло содержать сетевую инициализацию и монтирование сетевых устройств),
  3. После подготовки, проверки реального корневого устройства и монтирования как готовая корневая файловая система. Выполнение pivot_rootchroot), поэтому после операции, ramdisk станет неиспользованным диском поршня, смонтированным в /initrd.
  4. Таким образом, оттуда возможно umount /initrd и освобождение памяти.

Взгляните на man mount и man pivot_root!

1
27.01.2020, 20:39
  • 1
    +1 для mount --move –   13.01.2013, 20:16
  • 2
    Поскольку я не знаю Вашу иерархию и не убеждающийся ясно понять Вашу цель, я не могу предложить более подробное решение (чем Вы могли найти в man mount ... и я очень не хочу просто cut'n мимо из страниц справочника) –  F. Hauri 13.01.2013, 20:25
  • 3
    Это хорошо, Вы указали на меня в правильном направлении путем упоминания mount --move. –   13.01.2013, 20:27
  • 4
    Только для моего понимания: Почему Вы должны были umount /old прежде umount /old/blah/host ?? –  F. Hauri 13.01.2013, 20:35
  • 5
    Поскольку /old на самом деле (часть) файл, хранивший в /old/blah/host. чувак –   13.01.2013, 20:45

Для маркировки файловой системы, так же чисто размонтированной, не делая файлы на нем недоступными, повторно смонтируйте его как только для чтения:

mount -o remount,ro /mount/point

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

1
27.01.2020, 20:39

Теги

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