Arch Linux 참고 3

10161 단어 Linuxarchidea
Arch Linux를 만졌을 때 조사한 내용을 기록합니다.

분구


익숙하지 않아서 찾아보면서 진행했어요.
현재 Arch Linux의 부팅 환경은 UEFI입니다.
VirtualBox 가상 스토리지는 20GB로 제작되었습니다.

장치 확인

lsblk -l 또는 fdisk -l를 통해 확인할 수 있습니다.
lsblk -l
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0 653.4M  1 loop /run/archiso/airootfs
sda      8:0    0    20G  0 disk
sr0     11:0    1 807.3M  0 rom  /run/archiso/bootmnt
대략loop0과 sr0은 ArchLinux의 iso 이미지 자체를 가리키는 거죠?내 생각엔
sda는 VirtualBox 가상 스토리지입니다.
다음은fdisk -l.
fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 byutes, 41943040 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512bytes
I/O size (minimum/optimal): 512 bytes / 512bytes

Disk /dev/loo0: 653.41 MiB, 685150208 byutes, 1338184 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
lsblk의 디스플레이 내용의 취지는 다르다.lsblk 블록 장치의 디스플레이를 중요시하는지 여부.

분구 기초


파티션은 스토리지 디바이스를 분할하는 데 사용되는 메커니즘입니다.
예를 들어 OS 부팅용 프로그램이 일반 데이터와 같이 마우스 포인터로 삭제하거나 편집할 수 있다면 OS를 부팅하지 못할 수도 있다는 구분의 뜻이 있는 것 아닌가 싶습니다.
OS 이니시에이터의 파티션과 데이터가 저장된 파티션을 적어도 생성해야 합니다.
그렇다면 파티에서 분할하기 위한 구조다.스토리지의 시작 위치와 OS 부팅, 데이터 스토리지를 관리해야 합니다.
아래의 두 가지 관리 방법은 매우 유명하다.
  • 기본 부팅 기록(MBR, 1980년 전반기~)
  • GUID 파티션(GPT 1990년 후반~)
  • MBR은 예로부터 사용됐으며 최근에는 GPT가 주류다.
    간단하게 MBR 한번 볼게요.

    주 시작 레코드(MBR)


    메모리 구역 관리 방법을 MBR로 설정하면 메모리 전단 512Byte의 구조는 다음과 같다.
    시작 주소
    터미널 주소
    컨텐트
    크기
    0x0000
    0x01bd
    마운트 마운트 시작
    446Byte
    0x01be
    0x01cd
    첫 번째 파티션 테이블
    16Byte
    0x01ce
    0x01dd
    제2분구표
    16Byte
    0x01de
    0x01ed
    제3분구표
    16Byte
    0x01ee
    0x01fd
    제4분구표
    16Byte
    0x01fe
    0x01ff
    서명 시작(0xAA55)
    2Byte
    합계
    512Byte
    부팅 마운트는 부팅 가능한 로고의 구역을 찾아서 읽는 역할을 합니다.
    MBR을 만들어 보세요.
    $ parted /dev/sda
    GNU Parted 3.4
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)
    
    mklabel msdos에서/dev/sda를 MBR로 초기화합니다.종료 후quit parted를 종료합니다.
    (parted) mklabel msdos
    (parted) quit
    
    가 정말로 만들어졌는지 hexdump/dev/sda를 보십시오.메모리의 시작 512Byte만 읽습니다.
    hexdump /dev/sda -s 0 -n 512 -v
    
    hexdump 옵션
  • -s: 시작 주소가 지정되지 않은 경우 0
  • -n: 읽기 길이(Byte) 512바이트
  • -v: 표시된 지정을 생략하지 않습니다.* 에서 지정하지 않은 것과 같은 값을 생략합니다.
  • hexdump 출력 결과
    0000000 b8fa 1000 d08e 00bc b8b0 0000 d88e c08e
    0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
    0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
    0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
    0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
    0000050 0000 0000 0000 0000 0000 0000 0000 0000
    0000060 0000 0000 0000 0000 0000 0000 0000 0000
    0000070 0000 0000 0000 0000 0000 0000 0000 0000
    0000080 0000 0000 0000 0000 0000 0000 0000 0000
    0000090 0000 0000 0000 0000 0000 0000 0000 0000
    00000a0 0000 0000 0000 0000 0000 0000 0000 0000
    00000b0 0000 0000 0000 0000 0000 0000 0000 0000
    00000c0 0000 0000 0000 0000 0000 0000 0000 0000
    00000d0 0000 0000 0000 0000 0000 0000 0000 0000
    00000e0 0000 0000 0000 0000 0000 0000 0000 0000
    00000f0 0000 0000 0000 0000 0000 0000 0000 0000
    0000100 0000 0000 0000 0000 0000 0000 0000 0000
    0000110 0000 0000 0000 0000 0000 0000 0000 0000
    0000120 0000 0000 0000 0000 0000 0000 0000 0000
    0000130 0000 0000 0000 0000 0000 0000 0000 0000
    0000140 0000 0000 0000 0000 0000 0000 0000 0000
    0000150 0000 0000 0000 0000 0000 0000 0000 0000
    0000160 0000 0000 0000 0000 0000 0000 0000 0000
    0000170 0000 0000 0000 0000 0000 0000 0000 0000
    0000180 0000 0000 0000 0000 0000 0000 0000 0000
    0000190 0000 0000 0000 0000 0000 0000 0000 0000
    00001a0 0000 0000 0000 0000 0000 0000 0000 0000
    00001b0 0000 0000 0000 0000 ed4c a356 0000 0000
    00001c0 0000 0000 0000 0000 0000 0000 0000 0000
    00001d0 0000 0000 0000 0000 0000 0000 0000 0000
    00001e0 0000 0000 0000 0000 0000 0000 0000 0000
    00001f0 0000 0000 0000 0000 0000 0000 0000 aa55
    0000200
    
    0000은 2byte이고 1은 16byte입니다.
    자세히 구분해 보다
    마운트 마운트 시작(446Byte)
    0000000 b8fa 1000 d08e 00bc b8b0 0000 d88e c08e
    0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
    0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
    0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
    0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
    0000050 0000 0000 0000 0000 0000 0000 0000 0000
    0000060 0000 0000 0000 0000 0000 0000 0000 0000
    0000070 0000 0000 0000 0000 0000 0000 0000 0000
    0000080 0000 0000 0000 0000 0000 0000 0000 0000
    0000090 0000 0000 0000 0000 0000 0000 0000 0000
    00000a0 0000 0000 0000 0000 0000 0000 0000 0000
    00000b0 0000 0000 0000 0000 0000 0000 0000 0000
    00000c0 0000 0000 0000 0000 0000 0000 0000 0000
    00000d0 0000 0000 0000 0000 0000 0000 0000 0000
    00000e0 0000 0000 0000 0000 0000 0000 0000 0000
    00000f0 0000 0000 0000 0000 0000 0000 0000 0000
    0000100 0000 0000 0000 0000 0000 0000 0000 0000
    0000110 0000 0000 0000 0000 0000 0000 0000 0000
    0000120 0000 0000 0000 0000 0000 0000 0000 0000
    0000130 0000 0000 0000 0000 0000 0000 0000 0000
    0000140 0000 0000 0000 0000 0000 0000 0000 0000
    0000150 0000 0000 0000 0000 0000 0000 0000 0000
    0000160 0000 0000 0000 0000 0000 0000 0000 0000
    0000170 0000 0000 0000 0000 0000 0000 0000 0000
    0000180 0000 0000 0000 0000 0000 0000 0000 0000
    0000190 0000 0000 0000 0000 0000 0000 0000 0000
    00001a0 0000 0000 0000 0000 0000 0000 0000 0000
    00001b0 0000 0000 0000 0000 ed4c a356 0000
    
    여기 기계어 같은데.00001b0의 마지막 2Byte는 첫 번째 구역이기 때문에 포함되지 않습니다.
    첫 번째 파티션 테이블
    00001b0                                    0000
    00001c0 0000 0000 0000 0000 0000 0000 0000
    
    제2분구표
    00001c0                                    0000
    00001d0 0000 0000 0000 0000 0000 0000 0000
    
    제3분구표
    00001d0                                    0000
    00001e0 0000 0000 0000 0000 0000 0000 0000
    
    제4분구표
    00001e0                                    0000
    00001f0 0000 0000 0000 0000 0000 0000 0000
    
    서명 시작
    00001f0                                    aa55
    
    구역을 나눈 책상은 모두 0이다.아직 제작되지 않아서 그런가?

    파티션 테이블 생성


    첫 번째 구역만 만들어 보십시오.1 MiB가 시작한 100MiB가 끝날 때 먼저 큰 덩어리로 만든다.
    partd에 들어간 후 입력mkpart primary ext4 1MiB 100MiB하고 실행이 끝난 후quit로 제거합니다.
    $ parted /dev/sda
    GNU Parted 3.4
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) mkpart primary ext4 1MiB 100MiB
    (parted) quit
    
    역시 hexdump로 확인한다.
    다 볼 필요는 없으니까 첫 번째 구역의 책상 부분만 봐요.
    hexdump /dev/sda -s 0 -n 512
    
    제1분구
    00001b0                                    0400
    00001c0 0401 9083 9142 0800 0000 1800 0003
    
    오, 변했네.이 표지는 소단 절순임을 주의하십시오.
    소단 절서에 주의하면서 읽으면 구역별 탁자의 구조는 다음과 같다.
    주소 오프셋
    컨텐트
    크기
    이번 값 (hex)
    해석하다
    0x00
    부팅 플래그
    1Byte
    00
    부팅 불가능
    0x01
    파티션 시작 섹터(CHS 방식)
    3Byte
    04 01 04
    0x04
    파티션 식별자
    1Byte
    83
    etx4
    0x05
    파티션 끝 섹터(CHS 방식)
    3Byte
    90 42 91
    0x08
    파티션 시작 섹터(LBA)
    4Byte
    00 00 08 00
    2048 섹터
    0x0c
    파티션 전체 섹터 수
    4Byte
    00 03 18 00
    202752 섹터
    파티션의 모든 섹터 수가 MiB인 경우 MBR의 섹터 크기는 다음과 같이 512개의 Byte로 고정됩니다.
    202752 Sector * 512Byte = 103,809,024 Byte
    103,809,024 Byte/1024^2 = 99 MiB
    1mB~100m 크기로 지정했기 때문에 계산이 잘 맞는 것 같아요.
    이것은 섹션 테이블이라고 불리며 저장소의 부채 번호를 저장하고 관리한다.
    1~4위도 모두 같다.

    서명 시작


    마지막 값이 하나 있다.
    서명 시작
    00001f0                                    aa55
    
    이것은 시작 서명이라고 불리며 이 저장소가 MBR로 구성된 마술 번호를 나타낸다.
    다음은 GPT 내용을 보고 싶은데 기사가 길어져서 다음에 할게요.

    좋은 웹페이지 즐겨찾기