본문 바로가기

모의해킹/시스템 해킹

리눅스 커널 & 파일 시스템 빌드

728x90

• 리눅스 커널 빌드 과정

1. 빌드에 필요한 패키지 설치(* ubuntu 18 OS 사용)

sudo apt-get install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev bison flex libelf-dev

2. 원하는 버전의 리눅스 커널 소스 다운로드

https://kernel.org/

 

The Linux Kernel Archives

 

kernel.org

sudo xz -d 리눅스커널파일  -> sudo tar xf 리눅스커널 파일

 

3. make defconfig    // 해당 아키텍처의 default 옵션을 사용 sudo make defconfig

4. make menuconfig  // 메뉴 기반 설정 화면을 이용  -> 안 해도 됨?

5. make -j N   // N개의 CPU core를 이용해 커널 이미지 빌드(설치하는데 오래 걸림) -> sudo make -j 4 

-> 커널 빌드가 끝나면 vmlinux, bzImage 두개의 커널 이미지가 생성됨

bzImage는 arch/x86/boot/bzImages 위치에 있음

 

• 파일 시스템 빌드(루트 파일 시스템 빌드 과정)

1. busybox 다운로드

https://www.busybox.net/downloads/

2. make menuconfig  // 메뉴 기반 설정 화면을 이용

settings -> Build static binary 옵션 체크

Networking Utilities -> inetd 옵션 해제

3. target 디렉토리에 make 진행

-> mkdir ../target 명령으로 빌드 결과물이 저장될 target 디렉터리를 생성

-> sudo make CONFIG_PREFIX=../target install 명령을 통해 파일 시스템 빌드를 진행

4. target 디렉토리에 각종 디렉터리 세트 생성 및 init 스크립트 작성

-> mkdir dev etc lib proc tmp sys 

-> sudo vi init

#!bin/sh

mount -t proc none /proc
mount -t sysgs none /sys
mount -t devtmpfs devtmpfs /dev
exec 0</dev/console
exec 1>/dev/console
exec 2>/dev/console

setsid cttyhack setuidgid 1000 sh

umount /proc
umount /sys
poweroff -d 0 -f

-> init 스크립트가 바로 커널이 부팅되고 가장 먼저 실행되는 1번 프로세스

-> chmod 755 init 명령을 통해 권한 수정

5. cpio 확장자로 압축

find . | cpio -o --format=newc > rootfs.cpio

-> rootfs.cpio 파일이 지금까지 빌드한 루트 파일 시스템이다.

'모의해킹 > 시스템 해킹' 카테고리의 다른 글

shell_basic  (0) 2023.12.09
Welcome  (0) 2023.12.09
qemu & gdb 세팅  (0) 2023.05.30
리눅스 커널 해킹 (배경 지식)  (0) 2023.05.27
시스템 해킹 기본 지식  (0) 2023.05.11