[교육] 리눅스 과정 1일차
Chapter 1. LINUX KERNEL & DEVICES
1. Hardware Discovery Tools
Manual discovery of hardware
• dmesg : 커널이 인식한 하드웨어/파일시스템정보를 출력
# dmesg | tail -20
• /var/log/dmesg : 부팅시점에 커널이 인식한 하드웨어/파일시스템정보를 저장하고 있는 ASCII Text파일
# tail /var/log/dmesg
• /proc/ and /sys/
- memory
- /proc : 현재 동작중인 모든 프로세스 정보
- /sys : hardware path
# yum install tree -y
# cd /sys
# tree block
...
• udev
- device files을 생성/삭제 : /dev/sdb
- configuration file: /{lib,etc}/udev/rules.d/*.rules
- udevadm
# udevadm control --reload
# udevadm monitor
# udevadm info -a -p /sys/block/sdb
• lspci, lscpu, lsscsi, lsusb
• dmidecode, biosdecode
2. Kernel Modules
모듈 정보 확인 : modinfo module_name
# modinfo cdrom
# modinfo e1000e
커널에 장착된 모듈 리스트 확인 : lsmod
모듈 추가 : insmod
# insmod /lib/modules/3.10.0-229.1.2.el7.x86_64/kernel/drivers/cdrom/cdrom.ko
modules.dep update: depmod
# modprobe cdrom or modprobe -r cdrom
모듈 삭제 : rmmod
# rmmod usb_storage
3. Kernel Parameters
- /proc/sys/ASCII_text(0:disable,1:enable,value)
- 확인 : # cat /proc/sys/kernel/pid_max
# sysctl kernel.pid_max
-수정 : # echo 40000 > /proc/sys/kernel/pid_max
# sysctl kernel.pid_max=32768
- configruation file : /etc/sysctl.conf
kernel.pid_max=40000
Chapter 2. BOOT PROCESS & SYSTEMD
1. init(RHEL6) .vs. systemd(RHEL7)
1) runlevel target
0(halt) poweroff.target
# init 0 # systemctl isolate poweroff.target
# systemctl poweroff
1(single user mode) rescue.target
root's 패스워드 인증 없이 로그인 root's password 인증받은 후
# #
2 (text login.networkX)
3 (text login) multi-user.target
4 (unused)
# init 3 # systemctl isolate multi-user.target
5 (graphical login) graphical.target
# init 5 # systemctl isolate graphical.target
6 (reboot) reboot.target
# init 6 # systemctl isolate reboot.target
# systemctl reboot
- default runlevel:/etc/inittab - default target
id:default:5: # systemctl set-default multi-user.target
# systemctl get-default
- init scripts
/etc/rc0.d/S##script, K##script /etc/etc/systemd/system/multi-user.target.wants
/etc/rc1.d/
/etc/rc2.d/
/etc/rc3.d/
/etc/rc4.d/
/etc/rc5.d/S##script, K##script
/etc/rc6.d/
2) init service .vs. systemd service
/etc/init.d/service_script /usr/lib/systemd/system/*.service
실행 /etc/init.d/httpd start|stop|restart systemctl start|stop|restart httpd
service httpd start
상태확인 /etc/init.d/httpd status systemctl status httpd
부팅시 자동실행 chkconfig httpd on|off systemctl enable|disable httpd.service
- example
# yum install -y httpd
# systemctl start httpd.service
# systemctl status httpd
# systemctl enable httpd
2. Boot Process
PowerON -> BIOS(POST-CMOS:boot disk)- GRub boot loader
GRUB- kernel 을 메모리로 로드.
/boot/grub/grub.cfg
(hd0,msdos)/vmlinuz-version root=/dev/sda2 ro ....
initrd.img 메모리로 로드.
Kernel
1) hardware 정보를 수집
2) / filesystem readonly 상태로 활성화(mount)
====> single user mode
# mount -o remount,rw /
# passwd root
3) systemd 실행.
====> maintenance mode
root's password:makeitso
#
systemd
local-fs.target : / remount(rw), /etc/fstab(/usr, /var, /tmp), swap
sysinit.target :
basic.target(default.target)
==> rescue mode
multi-user.target : service daemon start
(optionally) →graphical.target : GUI login
login
3. Grub Boot loader