교육 이야기

[교육] 리눅스 과정 1일차

억삼이 2016. 8. 8. 23:40
반응형

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


반응형