Я читал, что вам нужно разместить раздел подкачки на жестком диске, а не на SSD.
Мои вопросы следующие:
- Когда и как «проверка» выполняется дистрибутивом (или чем-то еще), чтобы найти его раздел Swap?
- Это происходит во время загрузки?
- Он просто проверяет все доступные диски и ищет раздел с флагом 'swap'?
- Что произойдет, если будет несколько таких разделов?
- Кроме того, сколько разделов подкачки мне нужно иметь, если я запускаю, например, два разных дистрибутива на одном диске, скажем, Fedora и Ubuntu?
Ответы:
Статически настроенное пространство подкачки (тип, который используется почти во всех дистрибутивах) настраивается так
/etc/fstab
же, как и файловые системы.Типичная запись выглядит примерно так:
Вы также можете увидеть либо
discard
илиnofail
указано в поле флагов (четвертое поле). Каждая такая строка соответствует одной области подкачки (это не обязательно должен быть раздел, вы можете иметь файлы подкачки или даже целые диски подкачки).В некоторых действительно специфических случаях вы могли бы вместо этого динамически настраивать пространство подкачки, хотя это довольно редко, потому что это может вызвать проблемное поведение, связанное с управлением памятью. В этом случае конфигурация полностью обрабатывается компонентом пользовательского пространства, который создает и включает файлы подкачки по мере необходимости во время выполнения.
Насколько вам нужно, это сложный вопрос, но количество различных дистрибутивов Linux, которые вы планируете запустить, не окажет на это никакого влияния, если только вы не захотите запустить один дистрибутив, пока у вас есть другой в спящем режиме (и вы вероятно, не хочу этого делать, так как это действительно простой способ испортить вашу систему).
Когда вы запустите установщик практически для любого крупного дистрибутива (включая Fedora, OpenSUSE, Linux Mint, Debian и Ubuntu), он обнаружит любые существующие разделы подкачки в системе и добавит их в конфигурацию для дистрибутива, который вы используете. установка (за исключением, возможно, если вы выберете разделение вручную), и в большинстве случаев это приведет к разумной настройке системы.
Несмотря на это, я бы лично предложил избегать использования нескольких разделов подкачки, если вы не говорите о серверной системе с большим количеством дисков, и даже тогда вам действительно нужно знать, что вы делаете, чтобы настроить его так, чтобы он работал хорошо. ,
источник
/tmp
разделы / каталог). Вероятно, в этом случае лучше иметь виртуальные машины ...systemctl --all | grep swap
я получаю два результата.dev-disk-by\x2duuid-1c692cc4\x2df942\x2d4478\x2dad0f\x2d266b7484273a.swap
иswap.target
оба из которых являются ACTIVE = неактивными и SUB = мертвыми . Как заставить мою систему использовать область подкачки?… Обе из которых в настоящее время являются системными операционными системами.
Что происходит в системных операционных системах
родной механизм
Systemd использует различные виды устройств.
.mount
модульные файлы дают команду монтировать тома..swap
модульные файлы инструктируют его сообщать ядру о разделах подкачки. (.service
Единичные файлы инструктируют его, как запускать сервисы. И так далее.) Это родные механизмы systemd. Чтобы принять их, сама systemd разветвляет дочерние процессы, которые выполняют соответствующие системные вызовы.Если вы используете
systemctl
команду (с--all
) в такой операционной системе systemd, она расскажет вам о загруженных.swap
модулях. Например:Он также расскажет вам о
.mount
подразделениях.Системный администратор может на самом деле писать такие
.swap
файлы модулей вручную, точно так же, как может писать xe.service
,.socket
и другие файлы модулей вручную. Сама systemd просто ищет файлы модулей в файловой системе. Они его родной механизм.Можно даже заставить systemd показать вам, что находится в этих единичных файлах и где в файловой системе их можно найти:
автоматически сгенерированные файлы юнитов
Можно написать их от руки. Обычно, однако, такие
.mount
и.swap
файлы модулей автоматически генерируются программами, известными как генераторы . Два таких генератора естьsystemd-fstab-generator
иsystemd-gpt-auto-generator
. Они оба запускаются рано в процессе начальной загрузки и в ответ наsystemctl daemon-reload
команду, и (как вы можете видеть выше) они генерируют целую загрузку файлов модулей в недокументированный подкаталог в/run/systemd/
. Сам systemd просто использует эти сгенерированные файлы модулей .Прежний генератор читает
/etc/fstab
, распознавая несколько расширений systemd для этого формата файла. Как я указал в ответ комментарии, традиционно раздел подкачки имеет тип монтирования изsw
и как один обнаружат , что другие операционные системы распознают подкачки записей в этой таблице. Но программное обеспечение Linux взяло альтернативный способ распознавания типа VFS вместо этого, ищаswap
как тип VFS.systemd-fstab-generator
здесь не исключение, и именно так оно интерпретируется/etc/fstab
при преобразовании его в нативные механизмы.Последний генератор обрабатывает таблицу разделов EFI, которая находится на том же диске, на котором находится системный раздел EFI, и ищет записи таблицы разделов EFI, которые имеют различные общеизвестные идентификаторы GUID типа раздела . Одним из таких идентификаторов GUID является обычный идентификатор GUID, назначаемый разделам подкачки Linux; и если
systemd-gpt-auto-generator
найдет раздел с этим GUID (который удовлетворяет критериям, указанным в systemd doco), он создаст.swap
для него блок; не/etc/fstab
участвует вообще .Конечно, у этого процесса есть много побочных эффектов. Например, поскольку
/etc/fstab
первичный ключ к таблице отсутствует, записи могут иметь повторяющиеся поля «spec» и «file» (то есть «что» и «где»). В нативном механизме systemd, тем не менее, поле «файл» (то есть «где») является уникальным ключом для.mount
единиц, встроенным в имена единиц. Никакие две.mount
единицы не могут делиться этим. Для.swap
единиц измерения поле «spec» (т.е. «что») является уникальным ключом для единиц измерения. Никакие две.swap
единицы не могут поделиться этим. Поэтому не все записи в нем/etc/fstab
обязательно конвертируются в собственные механизмы и будут работать, особенно если люди делают такие вещи, как перечисление одной и той же точки монтирования для двух разных целей или один и тот же раздел подкачки двумя разными способами.Точно так же, поскольку он переведен
/etc/fstab
на собственный механизм, а собственный механизм systemd имеет другие способы активации модулей , его поведение несколько отличается от поведения несистемных операционных систем. По.mount
умолчанию устройство автоматически активируетсяsystemd-udevd
даже после начальной загрузки в ответ на появление смонтированного запоминающего устройства. Или он может быть указан в качествеWants=
илиRequires=
некоторых.service
или.socket
единиц, это означает , что она будет (пером) активируется , когда они есть. Есть дажеRequiresMountsFor=
.установщик программ и системный путь
Традиционно программы установки операционной системы и администратор systemd после перенастройки системы записывают
sw
записи в/etc/fstab
. И вот как натив.mount
и.swap
единицы в конечном итоге автоматически генерируются. Утилита установки / конфигурирования «знает», куда был помещен файл подкачки, потому что в своем пользовательском интерфейсе системный администратор сделал какой-то выбор и пишет/etc/fstab
для соответствия. Иногда этот выбор мне нужен, чтобы сделать раздел подкачки как часть установки. ; иногда это просто использовать раздел подкачки, который вы уже нашли на диске. (установщики тоже смотрят на типы разделов).Но у системных людей есть представление об операционных системах, которые автоматически конфигурируют себя из практически пустого
/etc
дерева, так называемых систем без состояний , и именно в этом и заключаются такие механизмы, как генератор, который читает таблицу разделов EFI. В плане системных пользователей нет/etc/fstab
и, действительно, нет постоянных данных конфигурации/etc
вообще, и все эти вещи выводятся из содержимого таблицы разделов на диске , при каждой загрузке и при каждомsystemctl daemon-reload
. В настоящее время они продвигают программы установки операционной системы, чем не пишут/etc/fstab
.Конечно, в традиционной схеме у каждой операционной системы может быть свой собственный раздел подкачки, и они не могут касаться разделов подкачки друг друга. И действительно, если вы используете hibernate на диск через раздел подкачки и ожидаете возможности мультизагрузки с другой операционной системой во время гибернации ( что является очень плохой идеей, потому что так легко вызвать повреждение файловой системы ), это будет необходимо.
В схеме systemd, даже если операционная система еще не так, как это предполагают люди, работающие с systemd, и «не имеет состояния», вышеупомянутые генераторы работают; и, таким образом, все разделы подкачки (на ESP / корневом диске) с требуемым типом раздела автоматически используются всеми системными операционными системами. Поскольку они будут совместно использовать все автоматически обнаруживаемые разделы подкачки, на самом деле не нужно создавать один раздел подкачки для каждой установленной операционной системы.
дальнейшее чтение
systemd.swap
, Системные справочные страницы . freedesktop.org.systemd-fstab-generator
, Системные справочные страницы . freedesktop.org.systemd-gpt-auto-generator
, Системные справочные страницы . freedesktop.org.источник
Исторически раздел подкачки указывается
/etc/fstab
с записью типаswap
. При загрузке процессы запуска считывают этот файл и помещают эту конфигурацию в ядро.Пример записи в
/etc/fstab
:Я не знаком с тем, как
systemd
управлять свопом, но я верю, что конечный результат один и тот же: процесс пользовательского пространства знает, какое место выделено для свопа, а процесс пользовательского пространства информирует ядро.источник
/etc/fstab
от ихsw
монтажа типа , а не от ихswap
типа VFS.systemd-gpt-auto-generator
.Все остальные ответы упоминают, как указать на файловую систему подкачки при загрузке.
Тем не менее, несколько моментов, которые нужно добавить к другим ответам:
mkswap
;swapon
;swapoff
.источник