매니페스트에서 Ubuntu ISO를 만들 수 있습니까?


13

이 답변 은 ISO 매니페스트에 대해 이야기합니다- 예가 여기 있습니다. .

매니페스트 파일에서 ISO를 만들 수 있습니까? 아니면 매니페스트 파일 dpkg --get-selections이 텍스트 파일에 저장되어 있습니까?

관련, 분류 :

답변:


21

filesystem.manifest는 다음 명령으로 생성됩니다.

dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest

따라서 구문은 다음 package_name version과 같습니다.

 xserver-xorg-video-nouveau  1:0.0.16+git20110411+8378443-1

형식 dpkg --get-selections은 약간 다릅니다.package_name install

xserver-xorg-video-nouveau  install 

파일을 한 가지 이상의 방법으로 사용할 수 있습니다.

apt-get install -y $(awk '{print $1}' filesystem.manifest)

솔직히 말해서 몇 년 동안 몇 가지 맞춤형 iso를 만든 후에는 작동 방식에 대한 학습 곡선이 있습니다. 일단 당신이 몇 가지를 이해하면 너무 어렵지 않습니다. 단지 필요한 지식은 적당히 크며, 최신의 정보원은 없습니다.

2 개의 빌드 디렉토리를 사용합니다.

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

custom- 이 디렉토리에는 최종 iso로 갈 모든 파일이 들어 있습니다. 루트 파일 시스템, 커널, initramfs 및 isolinux를 포함합니다.

rootfs- 이 디렉토리에는 라이브 CD 파일 시스템이 포함되어 있으며이 디렉토리를 mksquashfs를 사용하여 압축하여 CD에 포함시킵니다. debootstrap (실시간 D부터 처음부터)으로 빌드하거나 ubuntu-desktop.iso에서 파일 시스템을 추출합니다 (실시간 CD 사용자 정의). 자세한 내용은 아래의 우분투 위키 링크를 참조하십시오.

키 포인트

1) mksquashfs 이해-mksquashfs를 사용하여 루트 파일 시스템을casper/filesystem.squashfs

sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2) isolinux 이해-CD (부팅) 메뉴뿐만 아니라 iso도 부팅 가능하게 만듭니다. Arch Linux Wiki syslinux를 참조하십시오 .

grub2를 isolinux의 대안으로 사용할 수 있지만 grub2의 작동 방식을 이해해야합니다.). 대부분의 라이브 CD는 여전히 isolinux를 사용하고 있습니다.

3) initramfs를 만드는 방법. initramfs는 부팅에 사용되는 두 번째 파일 시스템입니다. 문제가 발생하는 경우 (사용자 정의 부팅 이미지가 작동하지 않고 커널 모듈이로드되지 않음) 루트 파일 시스템을 보는 이유를 이해할 수없는 경우 initramfs에 답이있을 가능성이 큽니다.

#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz

그런 다음 새 initrd.lz를 사용자 정의 빌드 디렉토리로 이동하십시오. custom/casper/initrd.lz

4) 캐스퍼. 캐스퍼 및 캐스퍼 스크립트는 3 개 위치에 있으며 3 개 모두 역할을 수행 할 수 있습니다. 그것들은 모두 bash 스크립트이며, 어느 시점에서 거의 확실하게 스크립트를 살펴보고 싶을 것입니다.

주인 - /usr/share/initramfs-tools/scripts/casper

B. 루트 파일 시스템-custom / usr / share / initramfs-tools / scripts / casper

initramfs의 C.-/ scripts 디렉토리를 참조하십시오.

우분투 남자 캐스퍼 참조

5) 당신의 사용자 인터페이스 / 애플리케이션에 대한 사용자 정의 할 /usr/share, /usr/share/gnome*예를 들어, 정확한 위치는 출시와 함께 변화를, /usr/share/gnome-background-properties/ubuntu-wallpapers.xml고전과에서 매우 표준 버전입니다.

6) 에서 사용자 정의를 수행 할 수없는 경우을 /usr/share/사용 /etc/skel하십시오. /etc/skel/.bashrc이 파일은 ~ / .bashrc에 복사됩니다. 파이어 폭스 또는 그놈 또는 그렇지 않은 것을 위해 다양한 구성 파일을 거기에 넣을 수 있지만 가능하면 / usr / share가 더 좋습니다 (설정에 따라 다름).

7) mkisofs-mkisofs를 사용하여 빌드 디렉토리를 ISO로 변환

cd ~/custom
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .

8) 끈기. 우분투 데스크탑 CD 및 사용자 정의 CD를 포함한 많은 라이브 CD에서 지속성을 사용할 수 있습니다. 이것은 casper로 구현됩니다.

A. 루트 캐스퍼는 casper-rw/에 cow 오버레이로 표시된 파티션 또는 파일을 마운트합니다 . 그런 다음 패키지를 설치하거나 구성 파일을 수정하면 재부팅 후에도 변경 사항이 유지됩니다.

이것을 조금만 사용하십시오. 모든 패키지를 업데이트하면 많은 공간이 필요합니다. 또한이 방법이 때로는 버그가 있음을 알았습니다.

B. 홈-캐스퍼 실은 home-rw/ home에 cow 오버레이로 표시되는 파티션 또는 파일을 마운트합니다 .

내 파이어 폭스 북마크와 개인 데이터가 부츠 전체에 걸쳐 보존되고 더 신뢰할 수 있기 때문에 이것을 선호합니다.

영구 홈 (영구적 /를 위해 casper-rw로 변경)

# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000

# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here

#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw

넣어 home-rw(파티션의 루트 디렉터리에) 또는 플래시 드라이브 (하지 하위 디렉토리)에에 /.

라이브 CD를 부팅 할 때 F6키를 누르면 '-'앞에 부팅 매개 변수에 Esc옵션 persistent을 추가합니다.

quiet splash persistent --

캐스퍼 부팅 스크립트는 마운트를 자동으로 찾습니다.

참조 우분투 위키 지속성 - 우분투 위키 페이지에만 논의 캐스퍼-RW를했으나, 홈-RW는 캐스퍼 스크립트에서 참조와 동일한 방식으로 작동, 이름 만 변경되었습니다.

스크린 샷에 대한 자세한 내용 은 Ubuntu 포럼 의이 게시물 을 참조하십시오 (옵션은 다르지만).

C. 예를 들어 부팅 해제와 같은 여러 그래픽 도구를 사용하여 지속성을 활성화 할 수 있습니다. 내가 아는 한 그래픽 도구는을 사용 casper-rw합니다.

이제 모든 내용을 이해하면이 두 페이지가 더 이해하기 시작합니다.

우분투 위키 라이브 CD를 처음부터

우분투 위키 라이브 CD 사용자 정의

구글

당신은 구글이 필요합니다. 인터넷을 통해 조언의 일부를 찾을 수 있습니다.

예 : Live CD 시작 화면을 변경하는 방법

데비안 라이브

이제 모든 것을 이해 했으므로 데비안 라이브 스크립트를 사용하십시오 . 이름이 당신을 속이지 않게하십시오.이 스크립트는 Mint 및 Ubuntu를 포함한 모든 .deb 시스템에서 잘 작동합니다.

설치하기 위해서

sudo apt-get install live-build

그래픽 인터페이스가 있습니다

sudo apt-get install live-magic

라이브 매직

remastersys 및 기타 GUI가 실패하는 것처럼 라이브 매직 GUI가 실패 할 수 있음을 이해하십시오. 이 경우 라이브 빌드 스크립트로 돌아갑니다 (live-magic은 빌드 디렉토리를 생성합니다).

라이브 빌드 스크립트와 디렉토리 레이아웃 / 구조를 배우려면 시간이 걸립니다

데비안 라이브 마누엘 Aye를 참조하십시오 , 그것은 길다, 한 번에 하나의 iso를 통해 작동합니다.

라이브 빌드 스크립트의 장점은 라이브 CD의 구성 요소를 이해하면 스크립트가 빌드의 90 % 이상을 자동화하며 변경하는 것은 구성 파일 (일반적으로)을 간단하게 편집하거나 때로는 initramfs를 빌드하는 것입니다.

너무 오래

그것이 너무 길었다면 심호흡을하고 휴식을 취하고 한 번에 한 부분 씩 정보를 통해 작업하십시오. 나는 그것이 어떤 의미를 갖기 시작할 것이라고 약속하고 당신은 시간이 그만한 가치가 있음을 알게 될 것입니다.

다른 도구 세트로 시작하는 경우이 도구 세트로 돌아가서 몇 개의 iso 후에이 명령어 세트에 대해 감사하겠습니다.)

내 사용자 정의 12.04 빌드는 즉시 gma500, 2d 만 (3d 없음)을 지원합니다 (다음 며칠 동안 iso를 gma 500 군중에게 공개 할 것입니다).

gma 500


1
어머. 이것은 훌륭한 답변입니다. 오늘 밤에 뭘하는지 알아
jrg

좋은. 이것이 40 표를 얻지 못하면 아무도 그것을 얻지 않아야합니다.)
Rinzwind

관심있는 사람은 respin을 사용할 수 있도록 만들고 자세한 내용 및 다운로드는 내 블로그 (Ubuntu Planet에 있음)를 참조하십시오. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.