RAM에만 쓰는 읽기 전용 Linux 시스템을 구축하는 방법은 무엇입니까?

RAM에만 쓰는 읽기 전용 Linux 시스템을 구축하는 방법은 무엇입니까?

이것은 나의 현재 파티션 구조입니다.

Filesystem            1K-blocks      Used Available Use% Mounted on
tmpfs                   127428         0    127428   0% /lib/init/rw
udev                    122976        96    122880   1% /dev
tmpfs                   127428         0    127428   0% /dev/shm
rootfs                  127428     11008    116420   9% /
/dev/sda1              1827534    933144    800029  54% /ro
rootfs.tmpfs            127428     11008    116420   9% /rw
rootfs.aufs             127428     11008    116420   9% /

나는 완전히 동일하거나 적어도 그에 가까운 또 다른 시스템을 구축하고 싶습니다. 또 다른 디스크는 아래와 같습니다 df.

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda3               678551    594050     84501  88% /
tmpfs                   124004         0    124004   0% /lib/init/rw
udev                     10240       520      9720   6% /dev
tmpfs                   124004         4    124000   1% /dev/shm
/dev/hda1                19515     15940      3575  82% /boot
/dev/hda2               253807      7002    246805   3% /var/log_compressed
tmpfs                   124004         0    124004   0% /tmp
tmpfs                   124004      3552    120452   3% /var/log
tmpfs                   124004         0    124004   0% /var/tmp
tmpfs                   124004        20    123984   1% /var/run
tmpfs                   124004         0    124004   0% /var/lock
tmpfs                   124004         0    124004   0% /var/spool

많이 읽었지만 unoinfs 또는 initramfs를 사용하여 설정하는 방법을 모르겠습니다.

도움과 설명을 주시면 정말 감사하겠습니다. 많이 읽었지만 unoinfs나 initramfs를 통해 이 작업을 수행하는 방법을 모르겠습니다.

답변1

어떤 마녀 배포판을 사용하고 있는지 모르겠습니다. 젠투에서는 나만의 initramfs 초기화 스크립트를 작성하는 데 익숙합니다. Initramfs는 루트 파티션과 switch_root를 실제 루트 파일 시스템에 마운트하고 실제 init를 실행하여 인계받기 위해 필요한 도구만 설치된 작은 루트 파일 시스템입니다.

ro 루트 시스템의 경우 다음을 사용하는 것이 좋습니다.호박 파일 시스템. 메인라인 커널을 완벽하게 지원하므로 시스템 속도가 빨라집니다. RAM 오버레이의 경우 다음을 사용할 수 있습니다.임시 파일 시스템, 커널에서도 지원됩니다.

그런 다음 이를 하나의 파일 시스템으로 "통합"해야 합니다. 나는 사용한다오브. 메인라인 커널은 이를 지원하지 않으며 배포판의 커널 패치가 이를 지원하지 않는 경우 직접 패치해야 합니다. (단일 페더레이션 FS는 메인라인에서 지원되지 않습니다)

아마도 직접 작성하는 것이 더 나을 것입니다. (저는 dracut과 genkernel을 사용해 보았지만 제 경우를 처리하는 데 필요한 모듈을 제공하지 않았습니다)

  • 디렉토리 생성 (저는 사용합니다 /usr/src/initramfs)
  • 다운로드정적 통화 중 상자위의 디렉토리로 이동합니다. 이것은 fsck, 마운트 등에 필요한 모든 linux_utils를 제공하는 정적 셸입니다.

  • 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의 모든 내용을 지우고(삭제) 루트로 전환하여 부팅을 계속하세요.
  • 커널로 컴파일할 수 없지만 여전히 필요한 커널 모듈이 있는 경우(예:오브): 다음 위치에 복사하세요./usr/src/initramfs/lib
  • /usr/src/initramfsgz, xz, cpio 또는 원하는 것을 사용하여 압축된 아카이브를 만들 수 있습니다.
  • 생성된 아카이브를 /boot 디렉터리에 넣고 grub을 편집하여 initrd로 로드합니다.

시스템이 사용자 정의 이미지로 부팅되도록 하려면 자체 커널도 컴파일하십시오. (실제로는 어렵지 않습니다): 젠투 커널 문서. 소스를 설치해야 하는 경우 명령을 패키지 관리자로 바꾸면 됩니다. 대부분의 배포판은 커널 소스 패키지를 제공합니다.

이를 달성하기 위해 배포판을 변경하려는 경우 Gentoo 또는 Arch로 변경하는 것이 좋습니다. 다른 것보다 "수동 작업"에 더 유연하며 둘 다 원하는 형식으로 해킹하기 위한 훌륭한 문서를 제공합니다.

답변2

주요 문제(읽기 전용 Linux 시스템 생성)에 대한 완벽한 솔루션은 아닐 수 있지만 다음을 사용하여 탐색할 수 있습니다.왕촨. 설치 가이드를 확인하실 수 있습니다여기, 하지만 자동 번역이 별로 좋지 않아 지금은 전체 번역을 올릴 시간이 없습니다. 요약하면 다음과 같습니다.

1) 필요한 종속성을 설치합니다.

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

2) 설치 패키지에서여기, 배포 버전이 존재하는 경우.

3) 기본적으로 Lethe는 모든 파티션을 고정하지만 구성 파일을 편집하여 변경할 수 있습니다(링크된 설정 가이드 참조).

4) 이 패키지를 설치하면 GRUB 메뉴에 커널 라인이 추가되어 aufs = tmpfs시스템이 정지 상태로 부팅됩니다(모든 변경 사항은 재부팅 시 삭제됩니다). 시스템을 변경하려면 eGRUB 메뉴가 보일 때 키를 누르고 이 줄을 삭제하거나 시스템에서 삭제하고 GRUB를 업데이트하세요.

답변3

이 발췌문은 다음에서 발췌되었습니다 /etc/initramfs-tools/scripts/init-bottom/__rootaufs.

# This is a simple overview of the steps needed to use aufs on the root file system and see the /rw and /ro  branches.
# initramfs init-botton script 
# move the root file system to aufs/unionfs readonly /ro
# root is mounted on ${rootmnt}
# create tmpfs on /rw
# create a aufs using /ro and /rw
# put some files on the tmpfs to fix mtab and fstab 
# move aufs to rootmnt to finish the init process.
# No changes to the root file system are made by this script.
#
#  Why!
#  This will allow you to use a usb flash drive and control what is written to the drive.
#  no need to rebuild the squashfs file just to add a program. 
#  boot to single user mode.  The system works the way you expect. boot aufs=tmpfs and no changes are written to the flash.
#  run ubuntu on an eeePC .

# Install 
# Install ubuntu 8.04 Hardy. Hardy has aufs installed by default
# apt-get update
# apt-get dist-upgrade
# apt-get install aufs-tools
# echo aufs >> /etc/initramfs-tools/modules
# put this file in /etc/initramfs-tools/scripts/init-bottom/rootaufs
# chmod 0755 rootaufs
# # clean up menu.lst 
# update-grub
# update-initramfs -u
# vi /boot/grub/menu.lst
# add aufs=tmpfs to the default entry. 
# do not add this line to single user mode.
# boot to single user mode in order to install software. 
# note: if your home account is on the root file system, your files are in ram and not saved.
# 

관련 정보