Где именно программы и файлы сохраняются в нестабильной действующей системе?

8

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

После нескольких инсталляций я начал задаваться вопросом, где программа на самом деле «сохраняется», поскольку на компакт-диске нет постоянной области, а также можно создавать USB-накопители без нее. Кроме того, можно загружать файлы или делать скриншоты с непостоянной действующей системой и временно сохранять их в пользовательских каталогах.

Где эти файлы на самом деле сохранены? Они загружены в ОЗУ, поэтому максимальный объем доступной памяти для работающей системы фактически равен объему ОЗУ машины? Установленные программы хранятся в кэше процессора или где-то еще целиком? Или эта информация, возможно, записана на пустом месте носителя CD? Очевидно, это не может быть нераспределенное пространство на жестком диске, поскольку работающие системы также работают с полностью зашифрованными или даже полностью без установленных жестких дисков.

Prototype700
источник

Ответы:

10

Это говорит непостоянно. Таким образом, они не «сохраняются» (продолжают существовать) между перезагрузками. Что происходит, так это то, что часть ОЗУ используется как ОЗУ. По сути, часть вашей оперативной памяти используется для имитации диска. Это все, что нужно, на самом деле. Вот почему вы можете создавать файлы в вашем / home / ubuntu во время сеанса LiveCD. Они просто не выживут (= сохранятся) после перезагрузки.

У меня под рукой нет LiveCD, но попробуйте df -hв следующий раз набрать в терминале и найти /точку монтирования. Посмотри на устройство. Скорее всего, это будет что-то вроде tmpfs. (Это один лайнер должен дать вам линию вы заинтересованы в: df -h | grep \/$)

Некоторое чтение о RAM дисках .

jawtheshark
источник
3
В наши дни, скорее всего, это будет aufsкакая-то другая оверлейная файловая система - их проще настроить, чем классическую tmpfsконфигурацию.
Марк
11

Действующая система, поставляемая с Ubuntu ISO, представляет собой установку Ubuntu в сжатом файле с именем filesystem.squashfs. Этот файл имеет файловую систему SquashFS 1, которая сопоставима с файловой системой ISO компакт-дисков и DVD-дисков, которые можно монтировать и использовать. 2

Этот файл находится в /casper/каталоге компакт-диска. Вы даже можете монтировать этот файл так же, как вы можете монтировать файлы ISO.

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

Live System может создавать / изменять файлы мультимедиа с помощью постоянного файла . Постоянный файл, используемый в Ubuntu, назван casper-rwи содержит файловую систему, аналогичную ext3или ext4доступную для записи. В загрузочном USB это находится в корне диска.

Этот casper-rwфайл является сохранение союза установлен в качестве накладываемого файловой системы, что означает , как только для чтения filesystem.squashfsи чтения / записи casper-rwустановлены на /. Любые файлы, которые были изменены или созданы, сохраняются в этой доступной для записи файловой системе casper-rw. Таким образом, эффективно создается иллюзия, что Live CD доступен для записи, а на самом деле это не так.

Итак, отвечая на ваши вопросы -

Где эти файлы на самом деле сохранены?

Ответ дан выше.

Они загружены в ОЗУ, поэтому максимальный объем доступной памяти для работающей системы фактически равен объему ОЗУ машины?

Я полагаю, memoryвы ссылаетесь на Космос. Ваш вопрос: «Итак, максимально доступное пространство для работающей системы - это объем оперативной памяти машины»?

Максимально доступное хранилище для активной системы - это размер постоянного файла (если он есть) + пространство подкачки (если они уже существуют) + оперативная память (его необходимо использовать в качестве хранилища до перезагрузки).

Установленные программы хранятся в кэше процессора или где-то еще целиком?

Если вы установите программу в систему Live без постоянного файла , они будут в вашей памяти. Если вы перезагрузитесь, все будет потеряно. Однако, если вы используете casper-rwпостоянный файл, он будет сохранен в этом файле и будет доступен после следующей перезагрузки (при условии, что вы не удалили этот файл )

Или эта информация, возможно, записана на пустом месте носителя CD?

Нет, он не записан на компакт-диске. Как объяснено в предыдущем ответе.

Надеюсь, вы получите ответы.


Ноты:

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

  2. Вы можете смонтировать его с помощью команд, таких как sudo mount ./filesystem.squashfs /mnt -o loop

  3. Объединение монтирования - это способ объединения нескольких каталогов в один, который содержит объединенное содержимое. Источник

Анвар
источник
Каспер - дружелюбный маленький призрак файловой системы.
кошка
1
Спасибо за ваше подробное объяснение. Я не видел, чтобы вы добавили ответы на отдельные вопросы в своем ответе. Это объясняет это довольно хорошо. Тем не менее, я не совсем понял раздел о casper -rw, особенно значение «Таким образом, эффективно создавая иллюзию, что Live CD доступен для записи, где на самом деле это не так», но я думаю, мне просто нужно прочитать который. Вы ответили на вопрос, так как постоянный файл недоступен на компакт-диске, а файл подкачки может логически существовать только в ОЗУ, и именно там информация была сохранена в моем случае.
Prototype700,
1
Я объясняю часть иллюзии. Файлы Read / Only монтируются на /. Вы видите их как /usr/, /var/и /homeт. Д. В Live CD, вы не можете создавать, изменять файлы, которые сохраняются. Да, вы можете создавать, изменять, но это исчезнет, ​​поскольку они действительно находятся в оперативной памяти. То же самое в Live USB без постоянного файла или casper-rwфайла
Anwar
1
Но в Live USB с постоянным файлом это тоже смонтировано /. Таким образом, когда вы создаете файл в своем /homeкаталоге, этот файл фактически сохраняется в casper-rwфайле, но вы думаете, что это содержимое компакт-диска. Если вы откроете casper-rw, вы получите все измененные / обновленные файлы в соответствующем месте. Так как он монтируется поверх оригинального только для чтения, создавая иллюзию
Анвар
2
Другое дело, что ваше высказывание «файл подкачки может логически существовать только в ОЗУ» неверно. Swap - это раздел или файл, хранящийся на диске и монтируемый для использования при загрузке. Прекрасно то, что если на вашем диске уже есть раздел подкачки, ваша живая Ubuntu распознает его и использует его. Но да, он нестабилен и очищен при перезагрузке @ Prototype700
Anwar