RepairDisk 사용자 지정 : LFS로가는 길

LiveCD에서 시스템을 수리해야하는 경우가 많았습니다. 프로세스의 어느 시점에서 도구가 부족하다는 사실을 알게되었고이를 설치하려고 할 때 LiveCD OS는 공간과 마늘, 물이 부족하다고 알려줍니다 ( 꺼져 버티기 위해).

이 문제는 LFS (Linux처음부터)는 사용자 지정 Linux를 설치하기위한 가이드 (배포 자체가 아님)입니다. 이 "배포"의 요점은 LiveCD에서 적절한 도구를 사용하여 커널 코드 및 기타 도구를 다운로드하여 자신의 시스템을 구축한다는 것입니다 (조금씩 모든 것을 컴파일). 단계별 가이드를 따르려면 여러 도구와 컴파일러가 필요하며 모든 것이 포함 된 liveCD가 없으므로 하나를 사용자 정의해야합니다.

해보자. 우리는 SystemRescueCD, 상당히 포괄적 인 Gentoo 기반 환경을 제공합니다.

우리의 예 (Linux From Scratch 책에 따라 처음부터 Linux를 설치하는 것)에서는 Bison 및 Makeinfo 프로그램이 누락되어 있으므로이 디스크의 새 ISO 이미지를 새 도구로 만들 것입니다.

알림 : Gentoo는 현장 모든 패키지가 설치되므로 프로그램 추가 및 업데이트 프로세스가 느립니다.

패키지 관리자 (예 : Debian의 apt-get)가 사용되지만 패키지를 다운로드하는 대신 소스 코드를 다운로드하여 컴퓨터에서 컴파일합니다.

이 프로세스를 위해서는 최소 4G의 여유 공간이있는 Linux 파티션 (예 : ext1.5)이 필요하지만 더 많은 것이 권장됩니다. 파티션을 조작하지 않으려면 가상 머신을 사용하십시오. 물론 컴파일, 설치, 리포지토리 동기화 중에 파티션에 몇 가지 작업이있는 것이 좋습니다. 임시 공간이 필요합니다. 8G + 2G 스왑 파티션을 사용하는 것이 좋습니다 (4G + 1G이면 충분하지만 RAM / 스왑이 누락 된 경우 프로세스가 더 느려질 것입니다).

10G 디스크로 가상 머신을 만들었다 고 가정하면 새로 다운로드 한 SystemRescueCd에서 부팅하도록 지시하여 시작합니다. 일단 안으로 들어가면 fdisk로 파티션을 나눕니다 (그래픽 세션을 시작한 경우 gparted로 할 수 있지만이 게시물의 목적은 기본 도구 사용을 가르치는 것입니다). fdisk는 대화식 명령입니다.

  • "n"옵션을 사용하여 새 파티션을 만듭니다.
  • "t"옵션을 사용하여 파티션에 들어갈 파일 시스템 유형을 변경합니다.
  • «w»옵션을 사용하여 디스크에 씁니다.
  • «q»옵션을 사용하면 변경 사항을 작성하지 않고 떠납니다.

"n"옵션을 사용하면 몇 가지 옵션이 제공됩니다. 첫 번째 파티션에서 마지막 섹터를 설정할 때를 제외하고는 항상 기본값을 사용합니다. "+ 8G"를 써야하므로 프로그램에 표시됩니다. 파티션이 8GB를 차지하기를 원합니다.

두 번째 파티션을 만들 때 나머지 공간을 차지하므로 기본 옵션을 사용합니다. 또한 두 번째 파티션이 스왑 유형이 될 것임을 fdisk에 알리려면 "t"옵션을 사용하십시오 (스왑의 82 진수 코드는 XNUMX입니다). 인터페이스는 다음과 같습니다.

% fdisk / dev / sda 명령 (m for help) :

모든 작업이 완료되면 "w"옵션을 사용하여 변경 사항을 디스크에 쓰고 종료합니다.
이제 파티션을 포맷 할 시간입니다. 즉시 사용하기 위해 스왑부터 시작하겠습니다.

% mkswap / dev / sda2 % swapon / dev / sda2

이미 포맷 된 스왑 파티션이 있으며 다음 명령을 사용하여 스왑 온 우리는 그것을 사용하기 시작했습니다. 이제 ext4에서 첫 번째 파티션을 포맷합니다.

% mkfs.ext4 /dev/sda1

다음에 설명 된 단계를 따를 수 있습니다. http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, 여기에서는 이상한 주석으로 번역 / 설명합니다.

파티션을 그 자리에 마운트합니다 (LiveCD에는 이미 적절한 변경을 수행 할 파티션이 마운트되어야하는 / mnt / custom 폴더가 준비되어 있습니다). 또한 마운트 후 디스크에서 파일을 추출해야합니다. 이미 준비된 스크립트를 사용하여 수행됩니다. 스크립트가 실제로 작동하는지 확인하려면 (예를 들어 Alt + F4 사용) 다른 터미널로 이동하여 (예 : Alt + FXNUMX) df -h.

% mount / dev / sda2 / mnt / custom % / usr / sbin / sysresccd-custom extract

이제 내부를 탐색하는 경우 / mnt / 사용자 정의 / customcd, 여러 폴더가 표시됩니다. 에 / mnt / custom / customcd / 파일 루트 파일 시스템이 발견되었습니다. 이제 미래의 새로운 시스템을 chroot 할 때입니다. 여기에 명령을 입력하겠습니다. chroot에 대한 자세한 내용은 볼 수 있습니다. 내가 한 달 전에 작성한이 튜토리얼

% mount -o bind / proc / mnt / custom / customcd / files / proc % mount -o bind / dev / mnt / custom / customcd / files / dev % mount -o bind / sys / mnt / custom / customcd / files / sys % chroot / mnt / custom / customcd / files / bin / bash # gcc-config $ (gcc-config -c)

우리는 이미 chrooted 시스템에 있으며, 일단 부팅하면 LiveCD 시스템이됩니다. 다음 명령을 사용하여 누락 된 패키지 (bison 및 texinfo)를 설치합니다. 벗어나 다 (소포를 취급하는 사람 운반 젠투에서).

먼저 포티지 트리를 동기화합니다 ( apt-get은 업데이트)
# emerge-webrsync 참고 : 웹에서 tar 팩을 다운로드하므로 더 빠르기 때문에 "emerge –sync"대신이 명령을 사용합니다. 이머 지하지 않으면 자동으로 emerge –sync로 인해 속도가 느려지므로이 단계가 필요합니다.

포티지 트리를 동기화 한 후 패키지 설치를 진행할 수 있습니다.

# 이머 지 sys-devel / 들소 # 이머 지 sys-devel / texinfo
들소는 컴파일하는 데 시간이 걸립니다.

우리는 chroot를 떠납니다 :# exit

새로 설치된 패키지가 squashfs에 저장되도록 "/ proc"을 마운트 해제합니다. 또한 나중에 잊지 않도록 "/ dev"및 "/ sys"를 마운트 해제합니다.
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

새 스쿼시 파일 시스템이 이미 준비되었으므로 다음 명령으로 생성합니다.
% /usr/sbin/sysresccd-custom squashfs
ISO 이미지에 파일을 추가하고 싶지만 squashfs 외부에 있도록하려면«/ mnt / custom / customcd / isoroot»폴더에 넣어야합니다.

% cp -a my-files /mnt/custom/customcd/isoroot

이 시점에서 공식 가이드는 기본 키보드 (예 : 스페인어 키보드의 경우 "es")로 부팅하도록 키맵을 설정할 수 있다고 알려줍니다. 그러나 여러 테스트를 수행하면 그들이 사용하는 스크립트가 작동하지 않고 커널을로드 할 때 오류가 발생하므로이 단계를 건너 뛰겠습니다.

영광스러운 순간이 왔습니다. 이제 맞춤형 시스템으로 새로운 ISO 이미지를 생성 할 수 있습니다!
% /usr/sbin/sysresccd-custom isogen my_srcd
"My_srcd"는 볼륨에 부여하는 이름이며 원하는대로 부를 수 있습니다. 이미지는«/ mnt / custom / customcd / isofile»에 저장되며 .md5 파일도 생성됩니다 🙂

가상 디스크에서 작업하는 경우 중요한 단계가 남아 있습니다. 가상 시스템의 ISO 이미지를 추출합니다. 이를 수행하는 방법에는 여러 가지가 있습니다. "게스트 추가"또는 이와 유사한 것을 설치하지 않아도되는 간단한 방법 (VirtualBox에서)을 설명하겠습니다.
클라이언트를 사용하여 ssh 터널을 통해 파일을 가져옵니다. 이렇게하려면 먼저 루트 암호로 게스트 시스템을 구성해야합니다. ssh 서버는 자동으로 시작되지만 혹시라도 다시 시작합니다.
% passwd
% /etc/init.d/sshd restart

가상 머신의 포트 포워딩을 구성해야합니다. VirtualBox에서는 다음과 같이 수행됩니다.

  1. 가상 머신 구성에 액세스합니다.
  2. 네트워크 섹션에서 이미 NAT에 어댑터를 구성했습니다.
  3. 포트 포워딩 옵션을 찾으십시오.
  4. "호스트 포트"및 "게스트 포트"매개 변수 만있는 새 규칙을 추가합니다.
  5. 호스트 = 3022 및 게스트 = 22

이를 통해 PC의 포트 3022가 가상 머신의 22라는 것을 알 수 있습니다. Filezilla 클라이언트를 시작합니다.

  1. 서버 매개 변수에 다음과 같이 작성합니다. sftp : // localhost
  2. 사용자 이름 매개 변수에 다음과 같이 작성합니다. root
  3. 비밀번호 매개 변수에서 사용하는 것을«passwd»에 넣습니다.
  4. 포트 매개 변수에 다음과 같이 작성합니다. 3022
  5. «빠른 연결»을 클릭합니다.

모든 것이 왼쪽으로 잘 진행되면 PC에서, 가상 머신에서 오른쪽으로 이동할 수 있습니다. 가상 머신에서«/ mnt / custom / customcd / isofile»폴더에 액세스하고 ISO 이미지를 PC에서 원하는 위치로 드래그하는 것으로 충분합니다.

!! 축하합니다!! 모든 것이 순조롭게 진행 되었다면 사용자 정의 된 SystemRescueCD로 ISO 이미지를 준비하고 CD, USB에서 부팅 할 수 있습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   레오

    다소 복잡하지만 매우 유용한 가이드입니다.
    좋은 기여.

  2.   Leper_Ivan

    그런 다음 조금 더 시간을 들여 눈에 큰 불편 함없이 자세히 읽어 보겠습니다. 매우 유용하고 흥미로운 것 같습니다 ..

  3.   카를로스 산체스

    안녕하세요 woqer, 아주 좋은 게시물입니다!

    나는 몇 년 동안 LFS와 함께 해왔고 여러분에게 봉사 할 수있는 나만의 iso를 만들었습니다. LFS이기 때문에 컴파일하는 데 필요한 모든 것이 있습니다. 😀 유용하기를 바랍니다

    http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso