내 특정 시스템에 부팅 파티션이 필요한지 어떻게 알 수 있나요?

내 특정 시스템에 부팅 파티션이 필요한지 어떻게 알 수 있나요?

나는 역사적으로 왜 별도의 부팅 파티션이 있었는지에 대한 일반적인 이야기를 알고 있습니다.

/boot 파티션의 실제 목적은 무엇입니까?

새 컴퓨터에서는 누구도 괴롭히지 마세요. 그러나 UEFI가 아닌 BIOS(USB에서도 부팅할 수 없음)를 사용하여 20년 된 시스템에 Linux를 설치하고 있습니다. 이것은 다중 부팅 머신이 아니며 LVM도 없고 디스크 암호화도 없고 RAID도 없는 복잡한 시스템이 아닙니다.

내 것을 어떻게 알 수 있나요?특정한컴퓨터야 내꺼 써특정한하드디스크, 부팅 파티션이 필요한가요?

노트:

  • 중요한 경우 - 설치하려는 배포판은안티 X 리눅스19.3 i386. 파티션을 편집할 수 있도록 gparted를 호출합니다.
  • 부트로더는 당연히 AFAICT가 grub2인 내 배포판에서 설치한 것입니다.

답변1

시스템이 1994년 이전 버전인 경우 BIOS는 504MiB(528.4MB)로 제한되는 1024/16/63보다 큰 클러스터/헤드/섹터 구조를 가진 디스크를 처리하지 못할 수 있습니다. 그 이유는 두 가지 제한 사항 집합의 불편한 상호 작용 때문입니다.

  • 클래식 확장되지 않은 BIOS INT 13h 기능에서 허용되는 최대 디스크 구조는 1024/255/63입니다.
  • IDE(PATA) 하드웨어에서 허용되는 최대 기하학적 크기는 65536/16/63입니다.
  • 지금까지의 간단한 구현에서는 각 값에서 가장 작은 제한을 선택하여 1024/16/63의 제한이 발생했습니다.

1994년 7월, 이러한 제한 사항을 해결하기 위해 새로운 BIOS 기능인 "향상된 디스크 드라이브 서비스"(줄여서 EDD)가 개발되었습니다. BIOS 표현과 IDE 하드웨어 인터페이스 사이의 헤더 섹션과 기하학 클러스터 사이에서 비트("기하학 변환"이라고 함)를 이동하여 이러한 제한을 해결합니다.

일부 BIOS 버전에는 디스크 구조 4096/16/16 또는 "번역된" 형식 1024/64/63에 오류가 있습니다.

클래식 C/H/S 디스크 주소 지정의 최대 한도는 16383/16/63(또는 번역 시 1024/255/63)의 디스크 구조에서 도달합니다. 이러한 디스크 주소 지정을 처리하는 BIOS 기능에 대한 데이터 입력 형식은 그렇지 않습니다. 이보다 큰 디스크를 처리할 만큼 비트가 충분하지 않습니다. 이 제한은 디스크 크기가 7.87GiB(8.45GB) 또는 정확히 16,450,560개의 디스크 블록인 경우에 도달합니다.

IDE(PATA) 사양에는 이 문제를 해결하는 기능이 포함되어 있지만 원래는 선택적 기능으로 지정되었으며 모든 BIOS에서 이를 구현하는 것은 아닙니다. 이를 논리 블록 주소 지정, 줄여서 LBA라고 합니다. 디스크 크기가 커지면서 1996년경에 출시된 대부분의 디스크는 LBA를 지원했습니다.

그러나 또 다른 BIOS 버그가 발견되었습니다. 일부 BIOS에는 디스크 블록 번호를 표시하는 데 26비트 이상이 필요한 경우 LBA 구현에 실패하는 버그가 있었습니다. 이는 1999년 8월 이전에 출시된 특정 BIOS 버전에 영향을 미치며 디스크 크기 제한은 32GiB(33.8GB)입니다.

1994년에 발표된 LBA 사양은 디스크 블록 번호에 28비트만 할당했기 때문에 디스크 크기 제한이 128GiB 디스크 크기로 또 추가되었습니다. 2003년에 발표된 ATA-6 사양은 현재 최신 SATA 디스크에 사용되는 LBA 디스크 액세스 기능의 48비트 버전을 지정했습니다. 디스크 크기가 128PiB로 커질 때까지 작동합니다.


이러한 제한 사항은 일반적으로 BIOS에서 의도적으로 잘못된 디스크 구조를 지정하고, 디스크가 문제가 되는 제한보다 작다고 알리고, /boot가짜 구조에 정확히 맞는 파티션을 생성함으로써 해결될 수 있습니다.

경우에 따라(LBA 지원 도입 이후) /boot파티션이 적절한 크기 제한 내에 있으면 충분합니다.

부트로더는 BIOS 루틴을 사용하여 이 파티션에서 Linux 커널(및 선택적 initrd 파일)을 로드하고, 커널이 부팅되면 해당 드라이버가 디스크 액세스를 대신하여 BIOS를 완전히 우회하고 운영 체제가 작동하는 동안 제한 사항을 변경할 수 있습니다. 달리는 것은 중요하지 않습니다. 달리기. 이 시점에서 커널은 일반적으로 실제 디스크 구조를 자동으로 감지합니다.

그렇다면 이것은 무엇을 의미합니까?

  • 시스템의 BIOS가 2004년 이전에 출시된 경우 /boot디스크의 처음 128GiB에 완전히 맞는 파티션을 만들어야 할 수 있습니다. 그렇지 않으면 BIOS가 운영 체제를 부팅하지 못할 수 있습니다. (이는 일반적으로 듀얼 부팅 및 기타 다중 OS 설정의 문제입니다.)
  • 시스템의 BIOS가 2000년 이전에 릴리스된 경우 /bootLBA 구현 오류를 방지하기 위해 디스크의 처음 32GiB 내에 별도의 파티션을 생성할 수 있습니다.
  • 시스템이 1996년 이전 버전이고 BIOS 설정 어디에도 "LBA"가 언급되지 않은 경우 가짜 디스크 구조를 지정하고 파티션이 모두 가짜 구조 내에 있는지 확인해야 할 수 있습니다. /boot다시 한 번 7.87GiB 내에 위치해야 합니다. 디스크.
  • 이보다 오래된 것: "박물관에 속합니다." :-) 하지만 꼭 해야 한다면 위의 관련 제한 사항을 참조하세요.

시스템의 BIOS 릴리스 날짜가 특정 사양 업데이트 날짜 바로 이후에 해당하는 경우 업데이트된 사양이 있을 수도 있고 없을 수도 있습니다. 각 사양 업데이트가 릴리스된 후 새로운 구현이 널리 퍼지는 데 시간이 걸립니다.

답변2

요약: 부팅 파티션이 필요하지 않습니다.

1990년대의 오래된 컴퓨터에도 부팅 파티션이 필요하지 않습니다.

..."하지만 BIOS 제한으로 인해 이것이 필요하다고 수년 동안 들어왔는데 어떻게 이것이 가능합니까?"라고 물을 수도 있습니다.

그 이유는 최신 Linux 배포판(예: antiX 19.3)이 grub2 부트로더를 설치하기 때문입니다. grub2 설치에는 부트로더가 제한 없이 파티션에 액세스하는 데 사용할 수 있는 드라이버가 포함될 수 있으며 HDD에 액세스하는 데 BIOS 기능이 필요하지 않습니다.

그러나 주의할 점이 있습니다. 이러한 드라이버는 실제 설치가 필요하며 반드시 자동으로 설치되지는 않습니다.

...하지만 grub2 드라이버를 위한 공간을 남겨두어야 합니다

첫째, grub2에는 이러한 드라이버를 저장할 공간이 필요합니다. 다행스럽게도 첫 번째 파티션이 MBR 바로 뒤에 있지 않은 경우, 디스크 시작 부분에서 grub2 설치는 파티션되지 않은 이 공간에 드라이버를 저장합니다(소량의 공간만 필요, 아마도 20KiB만 필요함). 괜찮아, 가도 좋아.

따라서 생성한 첫 번째 파티션이 1MiB로 정렬되어 있는지 확인해야 합니다(모든 파티션에 이 정렬이 있을 수도 있음).

antiX 설치 프로그램의 특정 경우에는gparted유틸리티는 파티션을 정의/생성하는 데 사용됩니다. gparted의 기본값은 1MiB 정렬이며 파티션을 생성할 때 다음 선택 사항을 제공합니다.

여기에 이미지 설명을 입력하세요.

따라서 이 설정을 변경하지 마십시오.

...적절한 드라이버가 설치되어 있는지 확인하세요.

Linux 배포 설치 프로그램, 특히 antiX 설치 프로그램은 기본적으로 자체 드라이버 대신 BIOS/UEFI 기능을 사용하는 grub2로 설정됩니다. grub2가 배송되었는지 확인해야 합니다 grub-install --disk-module=native. 이 작업에 대한 또 다른 질문이 있습니다.

Linux 설치 중에 grub2에 필요한 드라이버가 있는지 확인하는 방법은 무엇입니까?


통찰력 있는 답변을 제공하고 이 답변을 종합하는 데 도움을 준 @cas, @isaac 및 @telcoM에게 감사드립니다.

답변3

시스템에 필요한지 여부/boot 목차설치하기로 선택한 배포판에 의해 완전히 정의됩니다.

디렉터리( /boot)가 별도의 파티션에 있는지 여부도 선택 사항(필수는 아님)이지만 일부 상황에서는 유용할 수 있습니다.

선택한 배포판( )은 AntiXDebian 파생 배포판입니다. 데비안은 /boot파티셔닝을 사용할 수 있지만아니요필요하다. 데비안에는 다양한 부트로더(lilo, grub 등)를 사용할 수 있는 기능도 있습니다.

부트로더는 부팅 시 섹터를 로드하는 BIOS 기능의 영향을 받는 부분입니다. 그러나 GRUB2는 MBR 이후 약 80개 섹터(́~20k)를 사용할 수 있는 한 이러한 제한을 완벽하게 우회할 수 있습니다. 일반적으로 그렇습니다. 특히 1M 정렬 파티션의 경우 그렇습니다.

즉, /boot약 200MB(충분한 공간)의 첫 번째 파티션으로 파티션을 생성하고 부팅 가능하게 만든 다음(DOS 요구 사항) MBR에 grub을 설치합니다. 이 파티션에 grub을 설치할 수도 있지만 그렇게 복잡할 필요는 없습니다.

당신은해야합니다아니요여러 DOS 디스크 제한 사항에 대해 Grub2는 모든 구성을 완벽하게 해결할 수 있습니다(MBR 및 하위 섹터에 액세스할 수 있음).

읽어주세요자세한 내용은 grub 문서에 있습니다..

GRUB를 설치하는 방법에는 두 가지가 있습니다. MBR과 첫 번째 파티션 사이의 영역에 내장할 수 있습니다("부트 트랙", "MBR 간격" 또는 "임베디드 영역"과 같은 다양한 이름이 있으며 일반적으로 최소 31KiB입니다). )

게다가core.imggrub 문서의 설명

GRUB의 핵심 이미지입니다.

grub-mkimage 프로그램은 커널 이미지와 임의의 모듈 목록에서 동적으로 구축됩니다.

예를 들어 파일 시스템에 따라 ext4, zfs 등을 읽는 모듈이 사용됩니다. 다른 조건에서는 더 많은 모듈이 로드됩니다.

일반적으로 여기에는 /boot/grub에 액세스하고 런타임 시 파일 시스템의 다른 모든 항목(메뉴 처리, 대상 운영 체제 로드 기능 등 포함)을 로드할 수 있는 충분한 모듈이 포함되어 있습니다.

간단히 말해서 GRUB의 내부 작동 방식입니다.

모듈식 설계를 사용하면 코어 이미지를 설치해야 하는 디스크 영역이 일반적으로 32KB만큼 작기 때문에 코어 이미지를 작게 유지할 수 있습니다.

GRUB 실행에 필요한 조건 중 하나입니다.


시도해 볼 의향이 있는 경우:

  1. 디스크의 첫 번째 파티션(또는 여유 공간)으로 DOS 제한보다 큰 공간을 남겨 두십시오. 서식은 필요하지 않으며 이 테스트에서는 사용되지 않습니다.
  2. /테스트 운영체제를 설치하기 위해 50GB 디스크 전면에 파티션(용)을 생성합니다. GRUB을 더 어렵게 만들려면 /boot.
  3. Grub이 이해할 수 있는 파일 시스템에서 이 파티션을 포맷하세요 ext4.
  4. 필요에 따라 추가 파티션을 만듭니다(여유 공간 이후).
  5. 기본 디스크(sda1 또는 sdaX가 아닌 sda)에 GRUB를 설치해야 합니다.
  6. 설치를 종료하고 다시 시작하세요. 효과적인가요?

작동하는 경우 GRUB는 기존 BIOS를 관리할 수 있음을 보여줍니다.

관련 정보