• Home
  • About
    • PI photo

      PI

      Beginner's Blog

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

Linux Bootloader

πŸ“† Created: 2022.02.18 Fri

Reading time ~4 minutes

_posts/2025-04-22-OS_Process_API.md _posts/2025-04-19-OS.mdβ€” layout: post comments: true sitemap: changefreq: priority:

title: β€œ[LINUX] λΆ€νŠΈλ‘œλ” grub에 λŒ€ν•œ μ„€λͺ…κ³Ό μ‹€ν–‰λ ˆλ²¨ μ„€λͺ…” excerpt: β€œλ¦¬λˆ…μŠ€ λΆ€νŠΈλ‘œλ” - λΆ€νŠΈλ‘œλ”μΈ LILO, GRUB”

date: 2022-02-18 last_modified_at: 2024-12-27

categories: [LINUX] tags: [LINUX] β€”

λΆ€νŠΈλ‘œλ”

  1. μ •μ˜: 컀널이 μ˜¬λ°”λ₯΄κ²Œ λΆ€νŒ…λ˜κΈ° μœ„ν•΄ ν•„μš”ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³  μ΅œμ’…μ μœΌλ‘œ 운영체제λ₯Ό λΆ€νŒ…μ‹œν‚€λŠ” μ—­ν• λ‹΄λ‹Ή
  2. μ’…λ₯˜
    • LILO: MBRμ΄λ‚˜ νŒŒν‹°μ…˜μ˜ μ‹œλ™μ„Ήν„° μ•ˆμ—(만) μœ„μΉ˜. /etc/lilo.conf
    • GRUB: λ¦¬λˆ…μŠ€μ˜ κΈ°λ³Έ λΆ€νŠΈλ‘œλ”. GNUμ—μ„œ λ§Œλ“  λΆ€νŠΈλ‘œλ”. LILO보닀 κ°•ν™”λœ ν˜•νƒœ.

GRUB νŠΉμ§•

  • LILO에 λΉ„ν•΄ μ„€μ • 및 μ‚¬μš©μ˜ νŽΈλ¦¬μ„±
  • λΆ€νŠΈ 정보가 μ˜¬λ°”λ₯΄μ§€ μ•Šλ”λΌλ„ λΆ€νŒ… μ‹œ 이λ₯Ό λ°”λ‘œ μˆ˜μ •ν•΄ λΆ€νŒ… κ°€λŠ₯
  • μœˆλ„μš° 계열 및 기타 OSλ₯Ό 지원해 λ©€ν‹° λΆ€νŒ… κ°€λŠ₯
  • 메뉴 μΈν„°νŽ˜μ΄μŠ€ ν™˜κ²½μ„ 지원해 λŒ€ν™”ν˜• λͺ¨λ“œλ‘œ λΆ€νŠΈ 정보λ₯Ό μ„€μ • κ°€λŠ₯
  • λ„€νŠΈμ›Œν¬ μƒμ—μ„œ λΆ€νŠΈλ‘œλ”μ˜ μ„€μ • μˆ˜μ • κ°€λŠ₯
  • μ»€λ„μ˜ 물리적 μœ„μΉ˜λ₯Ό κΈ°λ‘ν•˜μ§€ μ•Šκ³ λ„ 컀널 파일λͺ…κ³Ό 컀널이 μœ„μΉ˜ν•˜κ³  μžˆλŠ” νŒŒν‹°μ…˜μ˜ μœ„μΉ˜λ§Œ μ•Œκ³  있으면 μ‹œμŠ€ν…œ λΆ€νŒ… κ°€λŠ₯.

GRUB μž₯치 λͺ…λͺ…

GRUB의 μž₯치 이름은 블둝 λ””λ°”μ΄μŠ€ ν‘œκΈ°λ²•κ³Ό λ‹€λ₯΄κ²Œ νŒŒν‹°μ…˜ μˆœμ„œλ₯Ό μ•Œλ°”λ²³μ΄ μ•„λ‹Œ 숫자둜 ν‘œκΈ°
ex) hda, hdb… -> hd0, hd1
(hd0, 0) -> 첫 번째 ν•˜λ“œ λ””μŠ€ν¬μ˜ 첫 번째 νŒŒν‹°μ…˜

GRUB ν™˜κ²½μ„€μ •νŒŒμΌ(grub.conf)

  • default: λ©€ν‹°λΆ€νŒ…μΌ 경우 기본으둜 λΆ€νŒ…ν•  OS의 λ ˆμ΄λΈ” 번호(0λΆ€ν„° μ‹œμž‘)
  • timeout: μ •ν•΄μ§„ μ‹œκ°„μ΄ κ²½κ³Ό ν›„ default에 μ„€μ •λœ OS둜 λΆ€νŒ…
  • splashimage: λ°°κ²½κ·Έλ¦Ό 경둜 μ„€μ •
  • title: GRUB에 λ‚˜νƒ€λ‚˜λŠ” OS 이름 μ„€μ •
  • boot: λΆ€νŒ…ν•  OSκ°€ μ„€μΉ˜λœ νŒŒν‹°μ…˜μ„ μ„€μ •
  • kernal: OS λΆ€νŒ… μ‹œ μ½μ–΄μ˜¬ 컀널 파일 μ§€μ •
  • initrd: 초기 램 λ””μŠ€ν¬; λΆ€νŒ… μ‹œ μ΄ˆκΈ°ν™”μ— ν•„μš”ν•œ 루트 λ””μŠ€ν¬μ˜ 이미지 νŒŒμΌμ„ μ§€μ •

GRUB ν™˜κ²½μ„€μ •νŒŒμΌ - λͺ…λ Ήμ–΄

  • boot: μ§€μ •ν•œ μž₯μΉ˜μ™€ 컀널 λͺ…λ Ήμ–΄λ‘œ λΆ€νŒ….
  • cat file_name: 파일의 λ‚΄μš©μ„ 확인.
  • clear: 화면을 클리어
  • displaymem: λ©”λͺ¨λ¦¬ 정보λ₯Ό 좜λ ₯
  • find file_name: μ§€μ • 파일이 μœ„μΉ˜ν•˜λŠ” μž₯치λͺ… 검색
  • kernal (kernal_file_name): λΆ€νŒ…μ— μ‚¬μš©ν•  컀널 이미지 파일의 경둜λ₯Ό μ§€μ •
  • makeactive: λ£¨νŠΈλ””μŠ€ν¬μ— μ‘΄μž¬ν•˜λŠ” GRUB의 루트 λ””λ°”μ΄μŠ€λ₯Ό λΆ€νŒ… κ°€λŠ₯ν•œ νŒŒν‹°μ…˜μœΌλ‘œ μ§€μ •
  • root (device_name): μ§€μ •ν•œ μž₯치λ₯Ό λΆ€νŠΈ νŒŒν‹°μ…˜μœΌλ‘œ μ§€μ •
  • rootnoverify (device_name): root와 λΉ„μŠ·ν•˜λ‚˜ νŒŒν‹°μ…˜μ„ 마운트 ν•˜μ§€ μ•ŠμŒ. 주둜 grub μ—μ„œ μ§€μ›ν•˜μ§€ μ•ŠλŠ” 파일 μ‹œμŠ€ν…œ λΆ€νŒ… μ‹œ μ‚¬μš©.
  • Setup (device_name): μ§€μ • μž₯치둜 grub μžλ™ μ„€μΉ˜

GRUB λΆ€νŠΈ λ””μŠ€ν¬λ₯Ό μ΄μš©ν•œ OS별 λΆ€νŒ… μž‘μ—…

  1. μœˆλ„μš°λ‘œ λΆ€νŒ…
    rootnoverify (hd0, 0)
    makeactive
    chainloader+l
    boot
    
  2. λ¦¬λˆ…μŠ€λ‘œ λΆ€νŒ…
    root (hd0, 1)
    kernal /boot/vmlinuz-version ro root=/dev/hda2
    boot
    

linux μ‹€ν–‰λ ˆλ²¨(runlevel)

cat /etc/inittab
systemctl get-default
  1. halt
  2. Single user mode
  3. multiusr, without nfs(no network)
  4. full multiuser mode *
  5. unused
  6. X11(graphic user) *
  7. reboot

grub은 ide ν•˜λ“œλ””μŠ€ν¬λ₯Ό μž₯μ°©ν•œ μˆœμ„œλŒ€λ‘œ μΈμ‹ν•œλ‹€.

9κ°•. λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ μ’…λ£Œλ₯Ό μœ„ν•œ λͺ…λ Ήμ–΄

  1. κΈ°λ³Έ λͺ…λ Ήμ–΄ - 디렉토리 κ΄€λ ¨λͺ…λ Ή: λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ μ’…λ£Œ 및 μž¬μ‹œλ™μ„ μœ„ν•œ λͺ…λ Ήλ¨Έ 및 디렉토리 μ‘°μž‘μ„ μœ„ν•œ λͺ…λ Ή ν•™μŠ΅

  2. μ‹œμŠ€ν…œ μ’…λ£Œμ™€ μž¬λΆ€νŒ…
      1. shutdown (opt)(time)(msg): μ‹œμŠ€ν…œμ„ μ’…λ£Œν•˜κ±°λ‚˜ μž¬λΆ€νŒ…ν•  λ•Œ μ‚¬μš©
    • μ˜΅μ…˜ -r: μ‹œμŠ€ν…œ μž¬λΆ€νŒ… -f: λ‹€μŒ λΆ€νŒ… μ‹œ 파일 μ‹œμŠ€ν…œ 검사λ₯Ό ν•˜μ§€ μ•ŠμŒ. -h: μ…§λ‹€μš΄ μ‹œ halt μž‘μ—… μ‹€ν–‰ -c: μ˜ˆμ•½λ˜μ–΄ μžˆλŠ” shutdown μž‘μ—… μ·¨μ†Œ -t n: κ²½κ³ λ©”μ‹œμ§€ 보낸 ν›„ n초 후에 kill μ‹œκ·Έλ„ 전솑 shutdown -r now
      1. halt (opt): μ‹œμŠ€ν…œμ„ μ’…λ£Œν•  λ•Œ μ‚¬μš©
    • μ˜΅μ…˜ -f: κ°•μ œμ’…λ£Œ -d: /var/log/wtmp νŒŒμΌμ— 기둝을 남기지 μ•ŠμŒ.
      1. reboot: μž¬λΆ€νŒ… reboot λͺ…λ Ήμ–΄μ˜ μˆ˜ν–‰ κ³Όμ •
    1. 파일 μ‹œμŠ€ν…œμ„ μ–Έλ§ˆμš΄νŠΈν•¨
    2. μ‹œμŠ€ν…œμ„ shutdown함
    3. μ‹œμŠ€ν…œ μ‹€ν–‰ μˆ˜μ€€(run level)을 3으둜 λ³€κ²½μ‹œν‚΄.(multiusr, without nfs(no network))
        1. init (n): μ’…λ£Œ/μž¬λΆ€νŒ… 런레벨번호
  3. 디렉토리(directory)
      1. /(root) 디렉토리: μ‹œμŠ€ν…œ 근간이 λ˜λŠ” κ°€μž₯ μ€‘μš”ν•œ λ””λ ‰ν† λ¦¬λ‘œ λ°˜λ“œμ‹œ μ‘΄μž¬ν•΄μ•Ό 함. λͺ¨λ“  νŒŒν‹°μ…˜, λ””λ ‰ν† λ¦¬λŠ” 루트 디렉토리 μ•„λž˜μ— μœ„μΉ˜.
    1. /의 μ£Όμš” μ„œλΈŒ 디렉토리 /bin (binary μ‹€ν–‰νŒŒμΌ μ €μž₯): λ¦¬λˆ…μŠ€ κΈ°λ³Έ λͺ…λ Ήμ–΄κ°€ μ €μž₯λ˜μ–΄ μžˆλŠ” 곡간 /dev (device): λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œμ˜ λͺ¨λ“  μž₯μΉ˜λ“€μ΄ 파일둜 ν‘œμ‹œλ˜μ–΄ 있음. μ£Όμš” λ””λ°”μ΄μŠ€ ν‘œμ‹œ ex /dev/nda: Master IDE ν•˜λ“œλ””μŠ€ν¬ /dev/ndb: Slave IDE ν•˜λ“œλ””μŠ€ν¬ /dev/sda: 첫 번째 SCSI ν˜Ήμ€ S-ATA ν•˜λ“œλ””μŠ€ν¬ /dev/cdrom: cdrom λ“œλΌμ΄λΈŒ /dev/tty0: 첫 번째 가상 μ½˜μ†” /boot (컀널 λΆ€νŠΈ 이미지 νŒŒν‹°μ…˜): μ‹œμŠ€ν…œμ΄ λΆ€νŒ…λ  λ•Œ λΆ€νŒ… κ°€λŠ₯ν•œ 컀널 이미지 νŒŒμΌμ„ λ‹΄κ³  μžˆλŠ” 디렉토리 /home (μ‚¬μš©μž 계정 νŒŒν‹°μ…˜): μ‚¬μš©μž 계정이 μœ„μΉ˜ν•˜λŠ” νŒŒν‹°μ…˜μœΌλ‘œ, 읡λͺ… ftp μ„œλΉ„μŠ€λ₯Ό ν•  λ•Œ ν˜Ήμ€ μ›Ή ν˜ΈμŠ€νŒ… μ„œλΉ„μŠ€λ₯Ό ν•˜κ³ μž ν•˜λŠ” κ²½μš°μ—λŠ” νŒŒν‹°μ…˜ μš©λŸ‰μ„ 크게 μ„€μ • /etc: μ‹œμŠ€ν…œ ν™˜κ²½μ„€μ • 파일 및 λΆ€νŒ… κ΄€λ ¨ 슀크립트, μ‚¬μš©μž 계정 정보가 μ €μž₯. μ‚¬μš©μž 계정 μΆ”κ°€ν•  λ•Œλ„ μ‚¬μš©. /lib (library): μ‹œμŠ€ν…œ μš΄μ˜μ— ν•„μš”ν•œ 곡유 라이브러리 이미지와 ν”„λ‘œκ·Έλž¨ 곡유 μ½”λ“œ 뢀뢄을 μ €μž₯. /usr (user, λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž¨μ΄ μ„€μΉ˜λ  νŒŒν‹°μ…˜): λ¦¬λˆ…μŠ€ 디렉토리 쀑 κ°€μž₯ λ§Žμ€ μš©λŸ‰μ„ μ°¨μ§€ν•˜λŠ” 곳으둜 μ‚¬μš©μžμ— λŒ€ν•œ λŒ€λΆ€λΆ„ ν”„λ‘œκ·Έλž¨ μ„€μΉ˜(μ‘μš© ν”„λ‘œκ·Έλž¨). /usr/local: μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž¨μ΄ μ„€μΉ˜λ˜λŠ” κ³³ /usr/src: ν”„λ‘œκ·Έλž¨μ˜ μ†ŒμŠ€κ°€ μ €μž₯ /usr/include: c/c++ ν”„λ‘œκ·Έλž¨μ˜ 헀더 파일이 λ“€μ–΄μžˆλŠ” κ³³ /sbin (system binary): μ‹œμŠ€ν…œ κ΄€λ¦¬μš© ν”„λ‘œκ·Έλž¨ μ €μž₯
    1. etc λ””λ ‰ν† λ¦¬μ˜ ꡬ쑰 /etc/fstab: 파일 μ‹œμŠ€ν…œ 관리 /etc/group: μœ μ € κ·Έλ£Ή 관리 /etc/inittab: init ν”„λ‘œμ„ΈμŠ€ 관리 /etc/passwd: μœ μ € 관리 μ‚¬μš©μž 계정λͺ…: νŒ¨μŠ€μ›Œλ“œ: μ‚¬μš©μž 계정 uid: μ‚¬μš©μž 계정 group id:μ‚¬μš©μž 정보: μ‚¬μš©μž 계정 ν™ˆ 디렉토리: μ‚¬μš©μž 계정 둜그인 μ‰˜

cat etc/shadow νŒ¨μŠ€μ›Œλ“œκ°€ μ•”ν˜Έν™”λ˜μ„œ μ €μž₯

    1. proc λ””λ ‰ν† λ¦¬μ˜ ꡬ쑰 /proc/cpuinfo: cpu의 정보 /proc/devices: ν˜„μž¬ 컀널에 μ„€μ •λ˜μ–΄ μžˆλŠ” μž₯치의 λͺ©λ‘ ν‘œμ‹œ /proc/filesystems: ν˜„μž¬ 컀널에 μ„€μ •λ˜μ–΄ μžˆλŠ” 파일 μ‹œμŠ€ν…œ λͺ©λ‘ ν‘œμ‹œ /proc/interrups: ν˜„μž¬ μ‚¬μš© 쀑인 μΈν„°λŸ½νŠΈμ— λŒ€ν•œ 정보 ν‘œμ‹œ /proc/loadavg: μ‹œμŠ€ν…œμ˜ 평균 λΆ€ν•˜λŸ‰ ν‘œμ‹œ /proc/meminfo: λ©”λͺ¨λ¦¬ 정보 ν‘œμ‹œ /proc/stat: μ‹œμŠ€ν…œ μƒνƒœ ν‘œμ‹œ
    1. usr λ””λ ‰ν† λ¦¬μ˜ ꡬ쑰 /usr/bin: μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 파일이 쑴재 /usr/include: cμ–Έμ–΄μ˜ ν—€λ”νŒŒμΌ 쑴재 /usr/lib: μ‹€ν–‰ νŒŒμΌλ“€μ„ μœ„ν•œ 라이브러리 μ €μž₯ /usr/local: 일반적 ν”„λ‘œκ·Έλž¨ μ„€μΉ˜ /usr/src: rpm, μ†ŒμŠ€ νŒŒμΌλ“€μ„ μ €μž₯ν•΄ μ‚¬μš©

μ°Έκ³ 

  1. https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=akohong&logNo=220797668319
  2. https://doongdangdoongdangdong.tistory.com/129
  3. https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS6259570844
  4. https://helloitstory.tistory.com/25


Share Tweet +1