부팅 프로세스 BIOS/UEFI ROM 펌웨어가 부트로더를 찾아 로드한다. 부트 로더가 로드된다. 2.1. 디스크상의 '커널 이미지'(/boot/vmlinuz-x.x.x-xx 등)를 발견 혹은 위치 로드. 2.2. Device Tree Pointer를 넘기던 이게 커널에 포함되어 있던 한다. 2.3. 커널 로드전에 initramfs 실행 유무 및 위치, 2.4.커널 커맨드(rootfs) 등을 커널에 넘긴다. (option) <s
부팅 프로세스 BIOS/UEFI ROM 펌웨어가 부트로더를 찾아 로드한다. 부트 로더가 로드된다. 2.1. 디스크상의 '커널 이미지'(/boot/vmlinuz-x.x.x-xx 등)를 발견 혹은 위치 로드. 2.2. Device Tree Pointer를 넘기던 이게 커널에 포함되어 있던 한다. 2.3. 커널 로드전에 initramfs 실행 유무 및 위치, 2.4.커널 커맨드(rootfs) 등을 커널에 넘긴다. (option) <
$ df 파일 시스템의 '블록'에 관한 정보를 보여줌 Used + Available ≠ 1K-blocks 일 것이다. 예비 블록으로 따로 사용중인 것이 있기 때문이다. $ df -h '-h' 옵션은 human readable 하게 보여준다. fsck: 파일 시스템 체크 리눅스의 파일 시스템을 검사한다. inode 및 블록, 디렉토리, 파일 링크 등을 검사하고 필요시 복구 작업도 수행 option|description :----|:--- -f|강제로
Disk buffer 리눅스도 버퍼가 디스크에 기록한다. 프로세스가 변경을 요청할 때 커널이 변경 사항들을 곧바로 파일 시스템에 기록하는 것이 아니다. 커널이 디스크에 실제로 변경을 가할 수 있을 때까지 RAM에 변경 사항들을 저장한다. Cache 커널은 RAM이 디스크로 부터 읽은 블록을 캐시에 저장한다. 프로세스가 반복하여 디스크를 읽을 필요가 없어진다.  예: Head 255, Sector: 63, Cylinder: 60801 1개 HDD에 헤드: 255개 1개 트랙: 63 섹터 1장 디스크의 실린더: 60801개 트랙 위와 같은 정보를 CHS(Cylinder, Head, Sector)방식이라고 함 1개 섹터(물리적 디스크 접근의 최소단위)의 위치를 정하려면 아래의 정보가 필요하다. 1)실린더 번호: 외부에서 세어봐서 몇 번째 트랙인가 2)헤드 번호: 어떤 헤드가 Read? Write? 디스크 면인가 3)섹터 번호: 트랙안의 '몇 번 째' '블록' 인가 ->
device 파일 찾기 명령|description|link :---|:---|:--- $ cat /proc/devices|Character, Block device 구분|/proc/devices 링크 $ udevadm|device file의 sysfs 찾아줌|udevadm 링크 $ blkid -o list|디바이스 파일 / 파일 시스템 / 라벨 / 마운트포인트
$ dd dd역할: if 로 지정된 파일을, 1번에 최대 bs 크기로 count만큼 of로 지정된 파일로 copy!!! dd 명령은 && sync로 같이 쓰는게 좋음 I/O를 미쳐 끝내지 않고 사용자가 터미널을 빠져나가거나 할 수 있음 주요 옵션 if=file: 입력 파일. (default: STDIN) of=file: 출력 파일. (default: STDOUT) dd option |description :---|:--- bs|Bytes, 한번에
디바이스 파일 종류 'b': block device 프로그램은 고정된 양을 가진 block device로부터 데이터에 접근한다. sda1과 같은 '디바이스 파일'은 1)디바이스 파일 이며 2)block device에서 3)디스크 장치이다. 디스크 장치는 아주 쉽게 block 단위의 데이터로 분리된다. 블록 장치의 전체 크기는