Как я создаю систему Linux только для чтения, которая только пишет в RAM?

Попробуйте затем sed сценарий:

Содержание infile:

odd even
one test        of              bigrams

Содержание script.sed:

## Inside square brackets there are two characters: space and tab.
## The instruction deletes them of the line.
s/[     ]*//g

## Label 'b'.
:b

## Copy line to 'hold space'.
h

## Get first bigram.
s/\(..\)\(..\).*/\1 -> \2/

## If last substitution succeed, continue to label 'a'.
ta

## Here last substitution failed: It means that line has less than four
## characters to extract a bigram, so read next line.
b

## Label 'a'
:a

## Print.
p

## Copy 'hold space' into 'pattern space'.
g

## Delete first character.
s/^.//

## Goto label 'b' to repeat loop.
tb

Запустите скрипт:

sed -nf script.sed infile

Результат:

od -> de
dd -> ev
de -> ve
ev -> en
on -> et
ne -> te
et -> es
te -> st
es -> to
st -> of
to -> fb
of -> bi
fb -> ig
bi -> gr
ig -> ra
gr -> am
ra -> ms
6
25.02.2013, 21:35
3 ответа

Хотя это не могло бы быть идеальное решение Вашей основной проблемы (создающий систему Linux только для чтения), Вы могли исследовать использование Лета. Можно найти инструкцию по установке здесь, но автоматический перевод не является потрясающим, и у меня нет времени для регистрации полного перевода в данный момент. Эмбарго греха, для подведения итогов:

1) Установите необходимые зависимости:

sudo aptitude install aufs-modules-`uname-r` aufs-tools

2) Установите пакет отсюда, если версия существует для Вашего распределения.

3) По умолчанию Лета замораживает все разделы, но можно отредактировать конфигурационный файл для изменения этого (см. руководство по установке, которое я связал с),

4) Установка пакета добавляет aufs = tmpfs к Вашей строке ядра в Вашем меню GRUB, которое загружает систему в замороженное состояние (где все изменения отменены на перезагрузку). Для внесения изменений в систему нажать e когда Вы видите меню GRUB и удаляете эту строку, или удаляете его из системы и обновляете GRUB.

0
27.01.2020, 20:30

Я не знаю дистрибутив ведьмы, Вы идете. На хинду я привык писать собственный initramfs init сценарий. Initramfs является только крошечной корневой фс только с существенными инструментами, установленными на нем, чтобы смонтировать Ваш корневой раздел и switch_root к Вашему реальному rootfs и выполнить реальный init для вступания во владение.

Поскольку ro базируется основная система, я предлагаю использовать squashfs. Это имеет полную основную поддержку ядра строки и делает Вашу систему быстро. Для Вашего наложения RAM можно использовать tmpfs, также поддерживаемый ядром.

Затем необходимо "объединить" их, чтобы быть как единственная файловая система. Я использую aufs. Это не поддерживается основным ядром строки и если это не поддерживается в патчах ядра Вашего дистрибутива, необходимо сделать исправление себя. (Нет ни одного FS объединения, поддерживаемого в основной строке),

Вы являетесь, вероятно, лучшими из записи той сами. (Я попробовал dracut и genkernel, но они не обеспечивают neccesary модули для обработки любого из моих случаев),

  • Создайте каталог (я использую /usr/src/initramfs)
  • Загрузите статический busybox на вышеупомянутый каталог. Это - статическая оболочка, если Вы al linux_utils neccesary к fsck, смонтируйтесь и т.д.

  • mkdir /usr/src/initramfs/{bin,dev,lib,mnt,sbin,tmp,etc,proc,sys} Для основной структуры

  • Создайте сценарий/usr/src/initramfs/init и вставьте все команды для монтирования разделов, ro наложение rw и файловая система
  • Объедините ro, и rw с aufs монтируют синтаксис.
  • Не забывайте --move Ваша точка монтирования к недавно созданному корню и umount вещи Вам больше не нужно
  • exec switch_root /sbin/init очищается (удаляет) все в загруженном initramfs и переключает корень для продолжения начальной загрузки.
  • Если у Вас есть какие-либо модули ядра, Вы не можете скомпилировать в ядро, но все еще нуждаться (как aufs): скопируйте их в /usr/src/initramfs/lib
  • Создайте сжатый архив с содержанием /usr/src/initramfs можно использовать gz, xz, cpio или wathever, который Вы любите
  • Поместите созданный архив в свой каталог начальной загрузки / и отредактируйте личинку для загрузки его как initrd.

Для проверки начальных загрузок системы с пользовательским изображением скомпилируйте собственное ядро также. (Действительно это не трудно): хинду документы ядра. В точке необходимо установить источники, просто заменить команду Вами диспетчер пакетов. Большинство дистрибутивов обеспечивает исходные пакеты ядра.

Если бы Вы готовы изменить дистрибутивы, чтобы сделать его, я предложил бы измениться на хинду или Arch. Они более гибки для "ручного материала" затем другие, и они оба предоставляют превосходную документацию для взламывания его в любой форме, которую Вы любите.

1
27.01.2020, 20:30

Эта выдержка из / etc / initramfs-tools / etc / initramfs-tools / scripts / init-note / ___ rootaufs :

 # Это простой обзор шагов, необходимых для использования AUFS в корневой файловой системе и  Смотрите филиалы / RW и / RO.
 # initramfs init-botton script
 # переместить корневую файловую систему в aufs / usionfs readonly / ro
 # root устанавливается на $ {rootmnt}
 # Создать TMPFS на / rw
 # создать AUFS, используя / RO и / RW
 # Положите несколько файлов на TMPF, чтобы исправить MTAB и FSTAB
 # переместить AUFS в rootmnt, чтобы закончить процесс инициализации.
 # Без изменений в корневой файловой системе не выполняется этим скриптом.
 #
 # Почему!
 # Это позволит вам использовать USB-накопитель и контроль, что записано на диск.
 # Не нужно восстановить файл squashfs просто добавить программу.
 # boot до одного пользователя пользователя.  Система работает так, как вы ожидаете.  Загрузочные AUFS = TMPF и изменения не записаны на вспышку.
 # запустить Ubuntu на eeepc.

 # Установить
 # Установите Ubuntu 8.04 Hardy.  Hardy имеет AUFS, установленные по умолчанию
 # apt-get update
 # apt-get dist-Upgrade
 # apt-get install aufs-tools
 # echo aufs >> / etc / initramfs-tools / modules
 # Поместите этот файл в / etc / initramfs-tools / scripts / init-note / rootaufs
 # chmod 0755 rootaufs
 # # очистить меню .lst
 # обновление-grub
 # обновление и initramfs -u
 # VI /boot/grub/menu.lst.
 # Добавить AUFS = TMPFS в запись по умолчанию.
 # Не добавляйте эту строку в один пользовательский режим.
 # BOOT на один пользовательский режим для установки программного обеспечения.
 # Примечание. Если ваш домашний аккаунт находится в корневой файловой системе, ваши файлы находятся в RAM и не сохранены.
 #
 
0
27.01.2020, 20:30

Теги

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