리눅스 부팅 과정
하드웨어 → 부트로더(커널준비) → 커널 → 파일시스템 마운트 → 드라이버 초기화 → 사용자 단계에서 systemd 실행
커널단계
- 부팅이 가능한 파티션이 있는지, 커널이 있는지 확인 → POST(Power On Self Test)를 실행
- 시스템 펌웨어를 업로드하여 초기화 작업을 실행 → BIOS UEFI
- 부트로더 실행
- /boot/grub2/grub.cfg 파일에서 해당 구성을 로드하고 부팅할 커널을 선택
- 커널은 선택하거나 제한 시간이 만료되면 부트로더가 디스크에서 커널 및 initramfs를 로드하여 메모리에 적재
- initramfs : 부팅, 초기화 스크립트 등에 필요한 모든 하드웨어에 대한 커널 모듈이 포함된 아카이브
- 커널 이후 부터 주로 사용되는 파일시스템 마운트
- initramfs에서 드라이브를 적재
- systemd 프로세스가 initrd,target 대상에 대한 모든 유닛을 실행, 루트 파일 시스템을 디스크의 /sysroot 디렉토리에 마운트(/etc/fstab)
- sysroot: root시스템 점검을 하기 위한 읽기 전용 디렉토리
- 커널을 initramfs의 루트 파일 시스템을 /sysroot의 루트파일 시스템으로 전환함
- initramf /sysroot → 최적의 시스템의 /sysroot로 찾아감
- systemd는 시스템에 구성된 기본 대상을 찾은 다음 해당 대상에 대한 구성을 준수할 유닛을 시작
- 타겟 설정 파일 /etc/systemd/system/default.target
- allow = yes 일 시, systemctl isolate 명령으로 타겟을 바꿀 수 있음. 일시적 적용
- systemctl isolate graphical.target
- systemctl isolate multi-user.target
- ls -l /usr/lib/systemd/system | grep runlevel* 에서 가능한 타겟 확인
기본타겟확인 및 영구 수정
systemctl get-default
systemctl set-default graphical.target
종속성 확인
systemctl list-dependencies graphical.target | grep target
/etc/fstab 설정 파일 잘못되어 부팅에 문제 생겼을 경우
- 부트 로더 메뉴 진입
- e를 눌러 edit mode 활성화
- 원하는 방법으로 진입 가능
- linux로 시작하는 행의 끝에서 systemd.unit=emergency.target 으로 진입 ctrl + x
- 루트파일시스템 읽기/쓰기로 마운트 → mount -o remount,rw
- /etc/fstab 파일에서 잘못된 줄 삭제 혹은 수정하기
- mount -a 재마운트
- ctrl + D 후 재부팅하기
root비밀번호 분실했을 때
- 부팅 editmode에서 rd.break 입력 후 실행
- ls 결과 값에 sysroot가 적용되기전이므로 ls에 존재 → sysroot파일 시스템이 디렉토리에 마운트 되지 않았음.
- sysroot를 읽기/쓰기로 다시 마운트
- mount -o remount,rw /sysroot
- 기존 root를 한 단계 낮은 sysroot로 바꿔줌으로서 격리해 안정성을 높인다.
- chroot /sysroot
- 기존에 root에서 작업을 하면 기본 루트 bin과 연결되어서 작업된다.
- 비밀번호 변경
- passwd
- 저장
- touch /.autorelabel
- 변경된 사항을 파일로 만들어 적용
- exit로 나간 후 ctrl + d 두 번 입력후 나가기
'Language > Linux' 카테고리의 다른 글
Linux DNS 서버 구축 (0) | 2022.03.10 |
---|---|
Linux 방화벽과 SELinux (0) | 2022.03.10 |
Linux 파일시스템과 스토리지 마운트 언마운트 (0) | 2022.03.10 |
Linux 작업 스케줄링 (0) | 2022.03.10 |
Linux 프로세스 우선순위 조정 (0) | 2022.03.10 |