ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [산대특] Internet 오류시 점검, 커널과 커널 컴파일(Kernel Compile)
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 2024. 8. 20. 19:18

    0820

     

    Internet 사용하다 오류가 뜨면 점검으로는 

    /etc/resolv.conf 파일 점검
    nslookup or dig 이 도구로 점검 가능
    더보기

    [root@rocky10-1 rocky]# nano /etc/resolv.conf 

    이 파일에 DNS 서버가 잘 쓰여있는지 확인하여 점검 하는 방법

     

     

    nslookup 사용법

     

    명령어를 입력하여 

    [root@rocky10-1 rocky]# nslookup

    > server

    Default server: 192.168.100.2

    Address: 192.168.100.2#53

    Default server: 168.126.63.1

    Address: 168.126.63.1#53

    Default server: 8.8.4.4

    Address: 8.8.4.4#53


    요렇게 쓸 수 이뜸

     

     

    네이버의 Dns 볼 수 있음

    > set type=ns

    > naver.com

    Server: 192.168.100.2

    Address: 192.168.100.2#53

     

    Non-authoritative answer:

    naver.com nameserver = ns2.naver.com.

    naver.com nameserver = ns1.naver.com.

     

    Authoritative answers can be found from:

    ns1.naver.com internet address = 125.209.248.6

    ns2.naver.com internet address = 125.209.249.6

     

    mx mail exchanger 메일 서버

     

    > set type=mx                        

    > daum.net

    Server: 192.168.100.2

    Address: 192.168.100.2#53

     

    Non-authoritative answer:

    daum.net mail exchanger = 10 mx1.hanmail.net.

    daum.net mail exchanger = 10 mx3.hanmail.net.

    daum.net mail exchanger = 10 mx2.hanmail.net.

    daum.net mail exchanger = 10 mx4.hanmail.net.

     

    Authoritative answers can be found from:

    mx1.hanmail.net internet address = 211.249.219.37

    mx2.hanmail.net internet address = 211.231.108.175

    mx3.hanmail.net internet address = 211.249.219.43

    mx4.hanmail.net internet address = 211.231.108.47

     

    daum 은 4개의 메일 서버를 갖고 있다는 것을 알 수 있다.

     

    > set type=any

    > daum.net

    Server: 8.8.4.4

    Address: 8.8.4.4#53

     

    Non-authoritative answer:

    daum.net

    origin = ns.kakaocorp.com

    mail addr = root.kakaocorp.com

    serial = 1669021390

    refresh = 1800

    retry = 600

    expire = 2419200

    minimum = 300

    daum.net nameserver = ns1.daum.net.

    daum.net nameserver = ns2.daum.net.

    Name: daum.net

    Address: 211.249.220.24

    Name: daum.net

    Address: 121.53.105.193

    daum.net mail exchanger = 10 mx4.hanmail.net.

    daum.net mail exchanger = 10 mx1.hanmail.net.

    daum.net mail exchanger = 10 mx2.hanmail.net.

    daum.net mail exchanger = 10 mx3.hanmail.net.

    daum.net text = "v=spf1 include:_spf.daum.net ~all"

    daum.net text = "google-site-verification=0w8tAk4ZN8tACAfxeAkgBQy3MfsZiFD3gt5zCeouVNQ"

    daum.net text = "google-site-verification=9Awx6dDz5H_TKwFD-X6ErU9ZbqiX6gr5RNrOd1mbAxc"

    daum.net text = "google-site-verification=CQHqDeJv5QbFRN_ViQvKJa3jeMDrCiw2iEPs1XcdAmk"

     

    Authoritative answers can be found from:





    > www.youtube.com

    Server: 192.168.100.2

    Address: 192.168.100.2#53

     

    Non-authoritative answer:

    www.youtube.com canonical name = youtube-ui.l.google.com.

     

    Authoritative answers can be found from:

    > exit



    이렇게 한줄로 처리할 수도 있다.

    [root@rocky10-1 rocky]# nslookup -query=mx naver.com

    Server: 192.168.100.2

    Address: 192.168.100.2#53

     

    Non-authoritative answer:

    naver.com mail exchanger = 10 mx3.naver.com.

    naver.com mail exchanger = 10 mx2.naver.com.

    naver.com mail exchanger = 10 mx1.naver.com.

     

    Authoritative answers can be found from:

    mx1.naver.com internet address = 125.209.238.100

    mx2.naver.com internet address = 125.209.238.137

    mx3.naver.com internet address = 125.209.222.14

     

     

    dig 사용법[root@rocky10-1 rocky]# dig mk.co.kr

    ; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> mk.co.kr
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35830
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 1232
    ; COOKIE: ae366a8542820d3d0100000066c3f0f6e8527b1a36ab19a1 (good)
    ;; QUESTION SECTION:
    ;mk.co.kr. IN A

    ;; ANSWER SECTION:
    mk.co.kr. 5 IN A 210.179.172.12

    ;; Query time: 4 msec
    ;; SERVER: 192.168.100.2#53(192.168.100.2)
    ;; WHEN: Tue Aug 20 10:27:37 KST 2024
    ;; MSG SIZE  rcvd: 81

     

    얘네는 DNS 서버의 설정 => DNS server settings

    canonical name == 별명 <= alias 


    [root@rocky10-1 rocky]# dig mk.co.kr +trace
    타겟을 이루는 경로를 쫙 보여준다.

    host 명령어로 특정 서버의 IP 주소를 알아낼 수 있고, 
    host IP_주소 로 특정 IP의 호스트를 알 수 있다. 

    '역 IP -in-addr-arpa' 하면 역방향 조회로 IP 주소가 거꾸로 쓰이고 상대를 더 빨리 찾게한다.

     

    in-addr-arpa
    in-addr.arpa는 도메인 네임 시스템(DNS)에서 사용되는 특수 도메인입니다. 

     

    Reverse lookup (로컬에서 LAN)상대방을 찾을 때 이렇게 찾으면 속도가 겁나 빠르다



    주로 IP 주소의 역방향 조회(reverse lookup)를 수행하기 위해 사용

     

    시스템의 서비스 상태를 확인할 때 쓰는 것 
    => netstat

     

    [root@rocky10-1 rocky]# netstat -nltp 또는 arp
    n 숫자~~ 옵션에 대한 설명은 

    옵션이 많은데 명령어에 대해 알고 싶으면 [명령어] --help 를 치면 된다.

     

    Manual page 보는 법

    man netstat
    netstat -h/--help
    netstat -nltp 식으로 서비스의 실행 여부
    -r 은 router 라우팅(경로) 정보를 보인다
    더보기
    실습

    [root@rocky10-1 rocky]# man ls
    하면 vi 화면이 뜨면서 편집기가 열린다. 

    로그보고 분석하여 리포트.. 를 쓸 수 있으면 외국계 회사 취업가능


    게이트웨이 주소를 보는 옵션
    [root@rocky10-1 rocky]# netstat -r
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags    MSS Window  irtt Iface
    default            _gateway        0.0.0.0              UG        0 0                     0 ens160
    192.168.100.0   0.0.0.0            255.255.255.0    U          0 0                     0 ens160
    192.168.122.0   0.0.0.0            255.255.255.0    U          0 0                     0 virbr0
     

    또 다른 명령어론 
    라우트라는 명령어도 있다. 
    [root@rocky10-1 rocky]# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   Metric   Ref    Use Iface
    default             _gateway        0.0.0.0             UG     100         0        0 ens160
    192.168.100.0   0.0.0.0             255.255.255.0   U       100         0        0 ens160
    192.168.122.0   0.0.0.0             255.255.255.0   U        0           0         0 virbr0

    2번을 통해 나가는 게이트웨이를 확인 가능
    [root@rocky10-1 rocky]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.100.2   0.0.0.0         UG    100    0        0 ens160
    192.168.100.0   0.0.0.0         255.255.255.0   U     100    0        0 ens160
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

     ## route add default gw 192.168.100.2 ens160
    명령어로 게이트웨이 주소 집어넣는 법

     

    이 두 명령어 매우 중요!!

    # route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.100.2 dev ens160 metric 2
    # route add -host 172.16.0.10 gw 192.168.100.2 dev ens160

    metric 라우터끼리 떨어져 있는 거리를 뜻함. 

    192.168.100.0 은 게이트웨이(192.168.100.2)를 통해 10.10.10.0 네트워크로 건너갈 수 있다.

    [root@rocky10-1 rocky]# route -n
    Kernel IP routing table
    Destination        Gateway             Genmask             Flags  Metric   Ref    Use Iface
    0.0.0.0               192.168.100.2     0.0.0.0                 UG     100       0        0 ens160
    10.10.10.0         192.168.100.2     255.255.255.0     UG      2          0        0 ens160
    172.16.0.10       192.168.100.2     255.255.255.255 UGH    0         0        0 ens160
    192.168.100.0   0.0.0.0                 255.255.255.0     U        100      0        0 ens160
    192.168.122.0   0.0.0.0                 255.255.255.0     U          0        0        0 virbr0


    타겟까지 가는 것을 보여주는 명령어
    traceroute, tracepath

    더보기

    [root@rocky10-1 rocky]# traceroute mk.co.kr
    traceroute to mk.co.kr (210.179.172.12), 30 hops max, 60 byte packets
     1  _gateway (192.168.100.2)  0.817 ms  0.675 ms  0.610 ms
     2  * * *
     3  * * *
     4  * * *
     5  * * *
     6  * * *
     7  *^C
    [root@rocky10-1 rocky]# tracepath mk.co.kr
     1?: [LOCALHOST]                      pmtu 1500
     1:  _gateway                                              0.591ms 
     1:  _gateway                                              0.326ms 
     2:  no reply
     3:  no reply
    ^C

     

    대형 사이트들은 막아뒀다. 

     

    그렇다면 절대 보지 못하느냐? 아니다
    BT로 들어간다. 

    뚫고 들어가서 볼 수 있다.

     

      BackTrack 이나 Kali Linux 는 모든 해킹 도구로 무장된 Debian 계열의 Linux 머신

     

     ARP 프로토콜은 IP 주소를 MAC 주소로 변경해주는 프로토콜,  그리고 ARP 는 브로드캐스트에서 사용

    LAN 내의 노드들이 통신할 때 ping IP 를 하면 ARP 가 IP를 MAC주소로 변경하여 서로의 MAC 주소를 인식하고 통신 

     

    통신하고 싶은 노드가 LAN에 없다면 

    외부 WAN(라우터 너머)으로 IP 주소 중 네트워크 주소로 라우터가 경로를 찾는다

    그리고 (도착하면 LAN이다) 상대방 네트워크의 라우터는 브로드캐스트로

    목표 노드의 MAC 주소를 알아낸 뒤 서로 MAC 주소로 통신한다.

     

    다른 LAN 과 통신할 때 
    출발지의 gw 의 패킷에는 
       출발지   목적지
    IP  1 A
    MAC  1 출발지의 GW
    목적지에서 찾으면 목적지의 gw 패킷에는 
    IP  1 A
    MAC  목적지의 GW A

     

     RARP(Reverse ARP)와 BootP(UNIX), 그리고 DHCP는 OS-less(운영체제가 없는) 시스템에서 사용

    이 상태는 IP 주소는 없고 오직 MAC 주소만 있다. => 그래서 IP 주소를 얻어내려고 한다.

     

    운영체제가 없는 시스템을 부팅하면 무조건 DHCP 를 찾는 RARP 프로토콜을 뿌린다. 

    MAC 주소를 IP주소로 변경하려고 찾는 것

     

    더보기

    VMware 에서 그냥 운영체제(iso)를 물리지 않고 깡통 컴퓨터를 하나 만든다

     

    이걸 실행시키면 

     DHCP 부터 찾는 모습이다.

    픽서가 나온 이유, 운영체제를 찾지 못했다.

    마더보드가 픽서를 지원 
    => 운영체제가 없어서 운영체제를 설치할 수 있도록 픽서가 짠

    DHCP 를 통해 클라이언트는 아래를 얻는다 

    ip address
    subnet mask
    gateway address
    dns address
    dhcp address

     

    그리고 관리자는 개별적으로 아래를 설정해줘야한다.

    workgroup/domain
    hostname

    단, Answer file(응답파일) 을 생성하면 이들도 자동으로 설정 가능이다.

     

     

    해커는 GW 의 MAC 주소를 해커 자신의 MAC 주소로 Clone(ARP Spoofing)해

    내부 LAN의 모든 노드들이 외부로 나갈 떄 거치는 게이트웨이 트래픽을 해커 머신도 거치게 만든다. 

     

    그래서 게이트웨이에 대한 MAC 주소 관리가 매우매우 중요하다!!!

     

    더보기

    ARP 실습

     

    [root@rocky10-1 rocky]# arp -a

    ? (192.168.100.139) at 00:0c:29:1a:a6:63 [ether] on ens160

    _gateway (192.168.100.2) at 00:50:56:e1:f9:84 [ether] on ens160

     

    BT 로 핑을 때리고 

    [root@rocky10-1 rocky]# ping 192.168.100.139

    PING 192.168.100.139 (192.168.100.139) 56(84) bytes of data.

    64 bytes from 192.168.100.139: icmp_seq=1 ttl=64 time=0.973 ms

    64 bytes from 192.168.100.139: icmp_seq=2 ttl=64 time=1.74 ms

    64 bytes from 192.168.100.139: icmp_seq=3 ttl=64 time=0.263 ms

    ^C

    --- 192.168.100.139 ping statistics ---

    3 packets transmitted, 3 received, 0% packet loss, time 2003ms

    rtt min/avg/max/mdev = 0.263/0.992/1.740/0.603 ms



    [root@rocky10-1 rocky]# arp -a

    ? (192.168.100.139) at 00:0c:29:1a:a6:63 [ether] on ens160

    _gateway (192.168.100.2) at 00:50:56:e1:f9:84 [ether] on ens160

     

    하면 서로의 MAC 주소를 알 수 있다. 

     

    BT에서 

    이렇게 ip주소를 볼 수도 있다. 

     

    역으로 IP 주소를 치면 

    역방향 조회로 된다

     

    더보기

    MAC 주소는 변경이 안된다? 노노

    win 7 을 킨다. 

    현재 MAC 주소 확인 

    우클릭 속성 고급

    > 확인 하고 다 닫는다 

     

    다시 CMD 에서 확인

     

     

     

    MAC 주소가 변경되었다. 


    이번엔 rocky 에서 맥 주소 바꿔보겠듬

     

    *** 해커가 MAC 주소를 변경해서 침투할 때 네트워크에서는 

    이를 NAC(Network Access Control)이라는 도구를 사용해서 

    알 수 없는 MAC 주소의 시스템에 네트워크에 들어오면 

    isolation(격리)처리로 격리해서 사용을 막는다. 
    NAC 은 Registered MAC (맥주소들을 갖고 있다 == 등록된 맥주소) 은행에서 많이 쓴다.

     

    더보기

    또 다른 맥 주소 바꾸는 방법

     

    터미널을 하나 더 열어 구글을 열고 검색한다. 

    macchanger-1.6.0.tar.gz download

    우클릭 > 카피 링크

    [root@rocky10-1 rocky]# wget https://ftp.gnu.org/gnu/macchanger/macchanger-1.6.0.tar.gz

    잘 다운되었다. 

    [root@rocky10-1 rocky]# tar xvfz macchanger-1.6.0.tar.gz

    잘 풀림

     

    [root@rocky10-1 macchanger-1.6.0]# ./configure && make && make install 
    ./configure 환경설정 
    make 컴파일
    make install 설치하겠다. 

     

    [root@rocky10-1 macchanger-1.6.0]# macchanger
    GNU MAC Changer
    Usage: macchanger [options] device

    Try `macchanger --help' for more options.



    -m 은 모드
    [root@rocky10-1 macchanger-1.6.0]# macchanger -m 11:22:33:44:55:66 ens160

    [root@rocky10-1 macchanger-1.6.0]# ifconfig ens160
    ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.100.135  netmask 255.255.255.0  broadcast 192.168.100.255
            inet6 fe80::20c:29ff:feae:4d72  prefixlen 64  scopeid 0x20<link>
            ether 11:22:33:44:55:66  txqueuelen 1000  (Ethernet)
            RX packets 1215323  bytes 1790834626 (1.6 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 107486  bytes 6692622 (6.3 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



    [root@rocky10-1 macchanger-1.6.0]# macchanger -r ens160
    Current MAC:   11:22:33:44:55:66 (unknown)
    Permanent MAC: 00:0c:29:ae:4d:72 (Vmware, Inc.)
    New MAC:       7a:00:0a:f5:22:f5 (unknown)

    커널(Kernel)

    커널(Kernel)은 Linux 운영체제의 핵심

    시스템 리소스(CPU, RAM, HDD 등) 를 하드웨어와 소프트웨어에게 할당하고 관리하는 역할

     

    커널은 작은 이진(binary) 파일로써 /boot 디렉터리에 자리

     

    하는 일:

     사람의 뇌가 모든 신경과 근육 체계를 통제하듯이 

    커널은 운영체제에게 특정 기능을 수행하도록 지시하고, 

    하드웨어 장치 드라이버를 통해서 하드웨어와 대화하고, 

    소프트웨어에 리소스를 할당해서 소프트웨어를 작동

     

    또한, 

    Linux 시스템에 특정 커널을 추가하거나 제거하는 방법을 살펴보고 

    자신만의 커스터마이즈(customized)된 새로운 커널을 생성할 수도 있다

     

    커널을 사용자가 조정하면 1.4MB의 플로피디스크 한 장에 들어가는 

    Linux 운영체제도 가능해서 IoT, Drone, Cloud 등에서 사용

     

    커널의 두 종류

    마이크로(Micro) 커널로도 불리는 모듈라(modular):

    그래픽, 멀티미디어, 그리고 오피스  프로그램 등 

    용량이 큰 프로그램을 실행할 때 라이브러리 모듈을 

    외부 디렉터리에 두고 필요할 때마다 로드시켜서 사용

     

    모노리씩(monolithic):

    커널(DNS나 DHCP 서비스와 같이 비교적 라이브러리 모듈이 많지 않은

    프로그램을 실행할 때에는 이들과 관련된 라이브러리 모듈을

    모두 메모리에 한꺼번에 로드 한 뒤 실행한다. 당연히 처리속도가 더 빠르다.

    (RAM(Hz)의 처리속도가 HDD(rpm)보다 1000배 빠르다.)

     

    사물인터넷(IoT : Internet of Things)에서 새로운 장치를 시스템에 추가하면 다음의 과정이 필요

    uname -r, uname -a 커널 정보 확인
    lsmod(list module) 모듈 정보 보이기
    insmod(insert module) 새로운 커널을 모듈에 넣기 
    modprobe(module probe 탐침) 새로운 모듈을 찾고, 찾은 모듈을 로딩해서 사용하기(젤많씀)
    rmmod(remove module) 해당 모듈 삭제 
    modprobe -r 종속성(dependencies)까지 모두 삭제

     

    커널은 두 가지 개념으로 사용된다. 

    Kernel compile : 

    Hardware compile 리눅스 버전(커널)을 올리는 작업

     

    Software compile :

    어느 소프트웨어를 디폴트로 설치하지 않고

    다른 소프트웨어와 연계해서 환경설정을 주면서 설치하는 방법

    ex) APM ("Application Performance Management"의 약자로,

    애플리케이션의 성능을 모니터링하고 관리하는 도구와 프로세스)

     

    더보기

     

    [root@rocky10-1 macchanger-1.6.0]# uname -a
    Linux rocky10-1 4.18.0-372.9.1.el8.x86_64 #1 SMP Tue May 10 14:48:47 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

    [root@rocky10-1 macchanger-1.6.0]# uname -r
    4.18.0-372.9.1.el8.x86_64

    [root@rocky10-1 macchanger-1.6.0]# ls /lib/modules
    4.18.0-372.9.1.el8.x86_64

    버전이 같다 == 모듈라걸 사용하고 있다. 

     

    # lsmod

    하면 주루룩 다 보여주고 

    0 이 커널?이 사용이랬나 0이.. 누가 쓰고 있데

     

     

     

    커널 컴파일 실습

    https://www.kernel.org/

    https://mirrors.edge.kernel.org/pub/linux/kernel/

     

    커널을 갑자기 올리면 무리다. 

    너무 높으면 안되니. 

    https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.19.100.tar.gz

     

    [root@rocky10-1 macchanger-1.6.0]# cd /usr/src/
    [root@rocky10-1 src]# wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.19.100.tar.gz

     

    유저 소스에다가 많이 넣어둔다. 

    다운이 끝나고

    나와있당

     

    [root@rocky10-1 src]# yum -y install gcc-c++

    [root@rocky10-1 src]# tar xvfz linux-4.19.100.tar.gz 

    [root@rocky10-1 src]# ls
    debug  kernels  linux-4.19.100  linux-4.19.100.tar.gz

     

    [root@rocky10-1 src]# ln -s linux-4.19.100 linux
    [root@rocky10-1 src]# ls
    debug  kernels  linux  linux-4.19.100  linux-4.19.100.tar.gz

    심볼릭 링크 만듦 저저 하늘색이 심볼릭 링크 

     

     

    Kernel Config(환경설정) 설정에는

    make config :
    순수한 CLI 에서의 설정으로 모든 하드웨어를 잘 알고 있을때 그래픽 없는 환경에서 사용한다.
    용량을 작게할 때에는 이 방법을 필히 사용해야 한다.
    make menuconfig : 
    TUI 에서의 설정으로 일부 그래픽 환경에서 사용한다. ncurses 라는 라이브러리로 사용한다.
    make xconfig :
    GUI 에서의 설정으로 완전 그래픽 환경이고 각 모듈에 대한 설명이 있어서 매우 편리하다. 
    qt-devel 이라는 라이브러리를 사용한다.

     

    더보기

    Kernel Config 실습

     

    첫번째 방법
    make config 로 만들겨


    [root@rocky10-1 linux]# pwd
    /usr/src/linux
    [root@rocky10-1 linux]# make config

    Compile also drivers which will not load (COMPILE_TEST) [N/y/?] 
    특정 커널을 쓰겠다. load 가 되지 않는 드라이버도 컴파일 할거니?
    ? 는 설명 나옴 

    Local version - append to kernel release (LOCALVERSION) [] 
    커널 배포판 추가할거냐 
    기존적으로 있는거에 
    두개를 쓰겠다 y

    Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] 

    Ctrl C 해서 끊음 

     


    두번째 방법 
    [root@rocky10-1 linux]# yum -y install ncurses-devel
    [root@rocky10-1 linux]# make menuconfig

    TUI 화면이 이것이다. 
    General Setup

    여기서 선택해서 할 수도 있다. 
    저장안하고 Exit 함

     

     

     


    세번째 방법

    yum -y install qt-devel 했는데 없어가지구
    yum update 해야 하는데 yum update 해서 엄청 많은 파일 예정

     

    고침!

     

       47  dnf install epel-release
       48  dnf update
       49  dnf install qt5-qtbase-devel
       50  make xconfig

    또는 

    [root@rocky10-1 linux]# yum -y install epel-release
    yum -y install qt5-qtbase-devel
    make xconfig

    이렇게 해도 결과는 같게 나온다. 

     

    yum -y install epel-release
    yum -y install qt5-qtbase-devel 해주면 된다. 
    make xconfig 해서 창이 뜨면 된다. 

     

    맘 잡고서 하루종일 봐도 된다…

     

    여기서 kernel compile 하며 가감을 해서 나만의 커널을 만들 수 있는 것이다. 
    뭘 가감할지 알려면 하드웨어에 대한 지식이 있어야 한다. 

    여기서 조정을 충분히 하고 

    상단 File > save as > 

    여기에 저장된다 > save 

    file > quit

    새로운 커널에 대한 정보를 갖고 있는게 보인다. 방금 저장한거 

    .config 파일을 기반으로 해서 새 config 파일을 해서 만들어라
    [root@rocky10-1 linux]# make bzImage 

    gedit .config

    비워주기 

    하고 다시 하기
    [root@rocky10-1 linux]# make bzImage 

    생성한 커널의 설정 정보를 가지고 있는 .config 파일을 기반으로 해서

    /usr/src/linux/arch/i386/boot 디렉터리에 새 커널 이미지로 컴파일해서 bzImage를 만들고,

    생성된 커널 이미지를 /boot 디렉터리로 복사해서 GRUB 정보를 갱신시키는 명령어다.

    make zImage는 커널 사이즈가 큰 경우 커널 이미지를 압축해서 컴파일하고, 
    make bzImage는 zImage보다 더 큰 커널 이미지를 컴파일할 때 사용하며, 
    make bzlilo는 make bzImage와 lilo 명령을 함께 수행할 때 사용한다. 

     

     

    이번엔 오류 없이 잘 되었다.

    우리가 만든 커널이 있다. 

     

    얘를 빌드한다. 

     

    make modules  1시간 이상 걸린다. 

     

    [root@rocky10-1 linux]# make modules

     

    [root@rocky10-1 linux]# make modules_install

     

    [root@rocky10-1 linux]# ls /lib/modules

    [root@rocky10-1 linux]# mkinitrd /boot/myker.img 4.19.100 && ls /boot/

     

    원래 make file 넣어서 수정도 가능하데 (안할거임)

    [root@rocky10-1 linux]# make install

     

    [root@rocky10-1 linux]# cat /etc/grub2.cfg 
    [root@rocky10-1 linux]# shutdown -r now

     

    만든게 나온다

     

     

연의 취업 도전기.