차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
linuxfromscratch:12.1:166-linux-6.7.4 [2024/04/25 05:09] – baecy | linuxfromscratch:12.1:166-linux-6.7.4 [2024/06/15 13:44] (현재) – baecy | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ^ Linux From Scratch - Version 12.1-systemd | ||
+ | ^ Chapter 10. Making the LFS System Bootable | ||
+ | |[[.: | ||
+ | |||
+ | |/etc/fstab 파일 생성 | GRUB를 사용한 부팅 설정| | ||
+ | |||
+ | ---- | ||
+ | |||
===== 10.3. Linux-6.7.4 ===== | ===== 10.3. Linux-6.7.4 ===== | ||
Linux 패키지에는 Linux 커널이 포함되어 있습니다. | Linux 패키지에는 Linux 커널이 포함되어 있습니다. | ||
줄 14: | 줄 22: | ||
다른 모든 방법이 실패하면 [[https:// | 다른 모든 방법이 실패하면 [[https:// | ||
- | 다음 명령을 실행하여 컴파일을 준비합니다: | + | 다음 명령을 실행하여 컴파일을 준비합니다. |
- | < | + | <code bash> |
이렇게 하면 커널 트리가 완전히 깨끗해집니다. 커널 팀은 각 커널 컴파일 전에 이 명령을 실행할 것을 권장합니다. 압축을 푼 후 소스 트리가 깨끗해졌다고 안심하지 마세요. | 이렇게 하면 커널 트리가 완전히 깨끗해집니다. 커널 팀은 각 커널 컴파일 전에 이 명령을 실행할 것을 권장합니다. 압축을 푼 후 소스 트리가 깨끗해졌다고 안심하지 마세요. | ||
- | 커널 옵션을 구성하는 방법에는 여러 가지가 있습니다. 일반적으로 메뉴 중심 인터페이스를 통해 구성하는 경우가 많습니다: | + | 커널 옵션을 구성하는 방법에는 여러 가지가 있습니다. 일반적으로 메뉴 중심 인터페이스를 통해 구성하는 경우가 많습니다. |
- | < | + | <code bash> |
** 선택적 make 환경 변수의 의미는 다음과 같습니다: | ** 선택적 make 환경 변수의 의미는 다음과 같습니다: | ||
줄 29: | 줄 37: | ||
커널 구성을 설정하기 위한 좋은 시작점은 make defconfig를 실행하는 것입니다. 이렇게 하면 현재 시스템 아키텍처를 고려한 기본 구성이 기본적인 상태로 설정됩니다. | 커널 구성을 설정하기 위한 좋은 시작점은 make defconfig를 실행하는 것입니다. 이렇게 하면 현재 시스템 아키텍처를 고려한 기본 구성이 기본적인 상태로 설정됩니다. | ||
- | 다음 기능을 활성화/ | + | 다음 기능을 활성화/ |
< | < | ||
General setup ---> | General setup ---> | ||
줄 71: | 줄 79: | ||
< /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> | < /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> | ||
... [DRM] | ... [DRM] | ||
- | # If [DRM] is selected as * or M, this must be selected: | + | # If [DRM] is selected as * or M, this must be selected. |
[ /*] | [ /*] | ||
... [DRM_FBDEV_EMULATION] | ... [DRM_FBDEV_EMULATION] | ||
Console display driver support ---> | Console display driver support ---> | ||
- | # If [DRM] is selected as * or M, this must be selected: | + | # If [DRM] is selected as * or M, this must be selected. |
[ /*] Framebuffer Console support | [ /*] Framebuffer Console support | ||
줄 95: | 줄 103: | ||
[*] Support for Interrupt Remapping | [*] Support for Interrupt Remapping | ||
- | RAM이 4GB를 초과하는 하드웨어에서 실행되는 32비트 시스템을 구축하는 경우 커널이 최대 64GB의 물리적 RAM을 사용할 수 있도록 구성을 조정하세요: | + | RAM이 4GB를 초과하는 하드웨어에서 실행되는 32비트 시스템을 구축하는 경우 커널이 최대 64GB의 물리적 RAM을 사용할 수 있도록 구성을 조정하세요. |
< | < | ||
Processor type and features ---> | Processor type and features ---> | ||
줄 101: | 줄 109: | ||
(X) 64GB [HIGHMEM64G]</ | (X) 64GB [HIGHMEM64G]</ | ||
| | ||
- | LFS 시스템의 파티션이 NVME SSD에 있는 경우(즉, 파티션의 장치 노드가 /dev/sd*가 아닌 / | + | LFS 시스템의 파티션이 NVME SSD에 있는 경우(즉, 파티션의 장치 노드가 /dev/sd*가 아닌 / |
< | < | ||
Device Drivers ---> | Device Drivers ---> | ||
줄 142: | 줄 150: | ||
원하는 경우 커널 구성 파일인 .config를 호스트 시스템(사용 가능하다고 가정)에서 압축을 푼 리눅스-6.7.4 디렉터리로 복사하여 커널 구성을 건너뛸 수 있습니다. 그러나 이 옵션은 권장하지 않습니다. 모든 구성 메뉴를 탐색하고 커널 구성을 처음부터 새로 만드는 것이 더 나은 경우가 많습니다. | 원하는 경우 커널 구성 파일인 .config를 호스트 시스템(사용 가능하다고 가정)에서 압축을 푼 리눅스-6.7.4 디렉터리로 복사하여 커널 구성을 건너뛸 수 있습니다. 그러나 이 옵션은 권장하지 않습니다. 모든 구성 메뉴를 탐색하고 커널 구성을 처음부터 새로 만드는 것이 더 나은 경우가 많습니다. | ||
- | 커널 이미지와 모듈을 컴파일합니다: | + | 커널 이미지와 모듈을 컴파일합니다. |
< | < | ||
커널 모듈을 사용하는 경우 / | 커널 모듈을 사용하는 경우 / | ||
- | 커널 구성에서 모듈 지원을 비활성화하지 않았다면 다음과 같이 모듈을 설치하세요: | + | 커널 구성에서 모듈 지원을 비활성화하지 않았다면 다음과 같이 모듈을 설치하세요. |
< | < | ||
줄 153: | 줄 161: | ||
<WRAP center round important 90%> | <WRAP center round important 90%> | ||
**주의** \\ | **주의** \\ | ||
- | LFS 시스템에 별도의 /boot 파티션을 사용하기로 결정한 경우(호스트 배포판과 /boot 파티션을 공유할 수도 있음) 아래에 복사한 파일은 이 파티션으로 이동해야 합니다. 가장 쉬운 방법은 먼저 ''/ | + | LFS 시스템에 별도의 /boot 파티션을 사용하기로 결정한 경우(호스트 배포판과 /boot 파티션을 공유할 수도 있음) 아래에 복사한 파일은 이 파티션으로 이동해야 합니다. 가장 쉬운 방법은 먼저 ''/ |
< | < | ||
장치 노드 경로는 마운트에서 ''/ | 장치 노드 경로는 마운트에서 ''/ | ||
- | 커널 이미지 경로는 사용 중인 플랫폼에 따라 다를 수 있습니다. 아래 파일 이름은 사용자의 취향에 맞게 변경할 수 있지만, 다음 섹션에서 설명하는 부팅 프로세스의 자동 설정과 호환되려면 파일 이름의 줄기는 vmlinuz여야 합니다. 다음 명령은 x86 아키텍처를 가정합니다: | + | 커널 이미지 경로는 사용 중인 플랫폼에 따라 다를 수 있습니다. 아래 파일 이름은 사용자의 취향에 맞게 변경할 수 있지만, 다음 섹션에서 설명하는 부팅 프로세스의 자동 설정과 호환되려면 파일 이름의 줄기는 vmlinuz여야 합니다. 다음 명령은 x86 아키텍처를 가정합니다. |
- | < | + | <code bash>cp -iv arch/ |
- | '' | + | '' |
- | < | + | <code bash>cp -iv System.map / |
- | 위의 '' | + | 위의 '' |
- | < | + | <code bash>cp -iv .config / |
- | Linux 커널에 대한 설명서를 설치합니다: | + | Linux 커널에 대한 설명서를 설치합니다. |
- | < | + | <code bash>cp -r Documentation -T / |
커널 소스 디렉터리의 파일을 루트가 소유하지 않았다는 점에 유의하세요. 패키지가 사용자 루트로 압축 해제될 때마다(chroot 내부에서 했던 것처럼) 파일은 패키지의 컴퓨터에서 무엇이든 사용자 및 그룹 ID를 갖습니다. 이는 일반적으로 설치 후 소스 트리가 제거되므로 다른 패키지를 설치할 때는 문제가 되지 않습니다. 하지만 Linux 소스 트리는 오랫동안 유지되는 경우가 많습니다. 이 때문에 패키저가 사용한 사용자 ID가 컴퓨터의 누군가에게 할당될 가능성이 있습니다. 그러면 해당 사용자가 커널 소스에 대한 쓰기 권한을 갖게 됩니다. | 커널 소스 디렉터리의 파일을 루트가 소유하지 않았다는 점에 유의하세요. 패키지가 사용자 루트로 압축 해제될 때마다(chroot 내부에서 했던 것처럼) 파일은 패키지의 컴퓨터에서 무엇이든 사용자 및 그룹 ID를 갖습니다. 이는 일반적으로 설치 후 소스 트리가 제거되므로 다른 패키지를 설치할 때는 문제가 되지 않습니다. 하지만 Linux 소스 트리는 오랫동안 유지되는 경우가 많습니다. 이 때문에 패키저가 사용한 사용자 ID가 컴퓨터의 누군가에게 할당될 가능성이 있습니다. 그러면 해당 사용자가 커널 소스에 대한 쓰기 권한을 갖게 됩니다. | ||
줄 186: | 줄 194: | ||
대부분의 경우 Linux 모듈은 자동으로 로드되지만 때로는 특정 지시가 필요한 경우가 있습니다. 모듈을 로드하는 프로그램인 '' | 대부분의 경우 Linux 모듈은 자동으로 로드되지만 때로는 특정 지시가 필요한 경우가 있습니다. 모듈을 로드하는 프로그램인 '' | ||
- | 다음을 실행하여 ''/ | + | 다음을 실행하여 ''/ |
- | < | + | <code bash> |
install -v -m755 -d / | install -v -m755 -d / | ||
cat > / | cat > / | ||
줄 197: | 줄 205: | ||
# End / | # End / | ||
EOF</ | EOF</ | ||
- | ==== 10.3.3. Linux의 내용 | + | ==== 10.3.3. Linux 패키지 구성 |
설치된 파일: config-6.7.4, | 설치된 파일: config-6.7.4, | ||
설치된 디렉터리: | 설치된 디렉터리: | ||
- | === 간단한 설명 === | + | === 간략한 설명=== |
* **config-6.7.4** \\커널에 대한 모든 구성 선택 사항을 포함합니다. | * **config-6.7.4** \\커널에 대한 모든 구성 선택 사항을 포함합니다. | ||
* **vmlinuz-6.7.4-lfs-12.1-systemd** \\리눅스 시스템의 엔진. 컴퓨터를 켤 때 커널은 운영 체제에서 가장 먼저 로드되는 부분입니다. 커널은 컴퓨터 하드웨어의 모든 구성 요소를 감지하고 초기화한 다음 이러한 구성 요소를 소프트웨어에 파일 트리로 제공하고 단일 CPU를 여러 프로그램을 동시에 실행할 수 있는 멀티태스킹 머신으로 전환합니다. | * **vmlinuz-6.7.4-lfs-12.1-systemd** \\리눅스 시스템의 엔진. 컴퓨터를 켤 때 커널은 운영 체제에서 가장 먼저 로드되는 부분입니다. 커널은 컴퓨터 하드웨어의 모든 구성 요소를 감지하고 초기화한 다음 이러한 구성 요소를 소프트웨어에 파일 트리로 제공하고 단일 CPU를 여러 프로그램을 동시에 실행할 수 있는 멀티태스킹 머신으로 전환합니다. |