/ boot 파티션은 항상 필요합니까?


30

/bootLinux 배포판을 설치할 때마다 파티션을 만들어야 합니까?

/boot파티션을 갖는 것과 /파티션을 부팅 가능 하게 만드는 것에는 차이가 있습니까?


부트 로더를 실수로 덮어 쓰지 않도록 / boot 파티션을 별도로 유지하는 것이 더 안전하다고 생각합니다. 내가 실수하지 않으면 부트 로더가 디스크의 첫 번째 실린더에 있어야 BIOS가 추가 제어를 처리 할 수 ​​있고 코드를 사용할 수있는 코드가 있다고 가정 할 때 BIOS가 항상 디스크에서 첫 번째 바이트를로드 할 때 부트 프로세스가 올바르게 작동하는지 확인해야합니다 운영 체제를로드합니다.
mnmnc

1
반드시 필요한 것은 아니지만 위의 의견에서 언급했듯이 좋은 습관입니다.
Hamed Momeni

답변:


29

명백한 질문에 대답하기 위해 : 아니오 , 별도의 파티션 /boot이 모든 경우에 반드시 필요한 것은 아닙니다.

그러나 다른 작업을 분할하지 않더라도, 일반적으로 별도의 파티션이하는 것이 좋습니다 /, /boot및 스왑입니다. 또한 것이라고 강력하게 제안 퍼팅 /home파일 시스템 계층에게 더를 분할하지 않더라도,뿐만 아니라 별도의 파티션에.

일반 루트 파일 시스템과 별도의 파티션에 / boot를 배치하는 이유는 디스크상의 파일 시스템 복잡성을 줄일 수 있기 때문에 커널과 초기 RAM 디스크를 부트 스트랩하기위한 부트 로더의 요구를 줄입니다. 이는 사소한 설정을 실행하는 경우 특히 흥미 롭습니다. RAID를 실행 중이거나 루트 파티션의 ZFS와 같은 비정상적인 파일 시스템 또는 암호화 된 루트 파티션 일 수 있습니다. 그런 다음 일반 ext2fs와 같이 / boot 용 파티션을 포맷 할 수 있습니다. 파티션은 작을 필요가 있기 때문에 (수백 메가 바이트가 충분합니다. 현재 시스템의 / boot는 100MB이므로 제약이 없습니다) ext2와 같은 저널링되지 않은 파일 시스템의 단점은 어쨌든 수표가 너무 빠르기 때문에 그렇게 훌륭하지는 않습니다. 파일 시스템의 상대적 단순성 및 파일 시스템은 정적이지 않기 때문에 발견되지 않은 손상을 줄일 수 있습니다. 부트 로더가 이국적인 파일 시스템이나 디스크 설정을 기본적으로 이해할 필요가 없다는 것도 또 다른 장점입니다.

/ home을 별도의 파티션에 배치하는 이유는 무언가가 잘못되어 채워지기 시작하더라도 (또는 직접 작성하더라도) 비 사용자 프로세스에 문제를 일으킬 위험이 없기 때문입니다. 홈) 또는 부팅 프로세스 자체. 또한 설치 프로그램에 / home을 그대로두고 다시 포맷 /하여 자체 파일로 채우도록 하면 OS를 다시 설치하거나 배포판을 전환하는 것이 훨씬 쉬워집니다 . 소프트웨어에 문제가있는 경우 최후의 복구 노력으로 큰 차이를 만들 수 있습니다.

스왑 파일을 실행하는 것은 Linux에서 권장되는 설정이 아니며 가장 일반적인 배포판의 주식 커널이 지원 되는지 확실하지 않습니다.파일 기반 스왑. 이것에 대한 여러 가지 이유가 있습니다. 하나의 큰 이유는 성능입니다 (대부분 조각화의 위험 때문에). 스왑은 RAM에 비해 이미 속도가 느리기 때문에 (픽스보다 스톱 갭 측정에 더 가깝습니다) 조각화의 위험으로 인해 속도를 늦출 이유가 거의 없습니다. 그리고 멀티 부트 환경에서 Linux 배포판간에 스왑 파티션을 안전하게 공유 할 수 있습니다. 아마도 일반적인 경우에 대한 고려 사항이 아니라 일부에 대한 고려 사항 일 것입니다. 스왑 파티션은 특성이 다른 별도의 물리 디스크에 배치 할 수도 있습니다. 요즘 SSD 또는 별도의 컨트롤러 채널에서 실행되는 10krpm 드라이브 (마지막으로 모든 SATA 디스크가 별도의 채널에 있지만 PATA 시대에는 차이를 만들 수 있습니다).

요즘 개인적으로 현재 시스템의 /를 100GB로 /, / boot 및 swap을 분리합니다 (나는 그 모든 것을 거의 사용하지 않습니다. 현재 사용량은 8.9GB이며, 그로 인해 필요한 모든 것을 제공합니다. 소프트웨어와 일부). 기본 디스크의 나머지는 단일 파일 시스템으로 구성되어 있으며, 개인 규칙에 따라 / da ( disk a)에 마운트 합니다. 두 번째 디스크는 / db, 그런 다음 / dc 등입니다. (FHS가 실제로이 체계를 승인하는 것은 의심 스럽지만 실제로는 잘 작동합니다.) 그런 다음 / home을 / da에 바인드 마운트하여 모든 단일 경로 참조를 업데이트하지 않아도 물리적 디렉토리를 이동할 수 있습니다. / home에 대해 디스크 공간이 약간 부족하다는 사실을 깨달았 기 때문에 다시 파티션하기.


3
또한 별도의 / boot는 루트 파티션이 암호화 된 경우 에만 필요 합니다 (부팅은 분명합니다)
usr-local-ΕΨΗΕΛΩΝ

@djechelon 나는 그것이 "사소한 설정"에 해당한다고 생각하지만, 특정 예제를 편집하겠습니다.
CVn

ZFS를 조사 중이며 모든 가이드는 루트에서 ZFS를 사용할 때 / boot의 ext *와 같은 것이 필요하다고 표시합니다.
CMCDragonkai 2016 년

1
@CMCDragonkai "/ boot에 별도의 파티션이 반드시 필요한 것은 아닙니다 . "라는 대답을 바꾸지는 않습니다 .
CVn

3

나는 그것이 더 이상 의무적이라고 생각하지 않습니다. 과거에는 BIOS의 일부 제한 때문에 필요했습니다. 8 또는 64 Go 후에 부팅 가능한 파티션을 갖는 것은 불가능했습니다 (정확히 기억하지 못합니다). 그런 다음 이중 부팅을 원할 경우 첫 번째 작은 파티션 (/ boot)과 부팅 가능한 Windows 파티션을 넣은 후 다른 Linux 파티션을 넣을 수 있습니다. / boot 디렉토리가 전혀 없었습니다. 커널은 /에 직접있었습니다.


1
커널은 때때로 루트에 직접 저장되었지만 (일부 배포판에서는 여전히이 작업을 수행 할 수 있음) initrd, System.map, 부트 로더 구성 등과 같은 다른 항목이 필요할 수 있습니다.
CVn

2

차이점은 파일 시스템 최적화입니다. 일반적으로 각 파티션에는 파일, 설명자 등을위한 자체 테이블이 있습니다. '/ boot', '/ swap', / usr '등없이 단일'/ '파티션에 Linux를 설치할 수 있지만이 단일 파티션 내부 테이블은 곧 커질 것입니다. 일부 작업은 약간 느려집니다. 따라서 다른 종류의 작업에 서로 다른 최적화 된 컨테이너를 제공하기 위해 다른 파티션이 사용됩니다.


전체 inode 테이블 세트는 파일 시스템 검사 외부에서는 거의 사용되지 않습니다. 대부분 특정 디렉토리에 대한 테이블 만 참조됩니다. 파티션 크기에 따라 크기가 다르거 나 거의 다릅니다.
CVn

크기는 크기가 usage아니라 파티션을 기준으로합니다 . inode의 목록입니다. 따라서 inode파일 조회, 추가 등을위한 s = 시간이 약간 더 걸립니다. 빈 파티션과 백만 개의 파일이있는 파티션의 차이점은 없지만 부팅 또는 스왑과 같은 작업의 경우 차이점이 있습니다.
grigoryvp

귀하의 의견이 내 의견과 어떻게 모순되는지 모르겠습니다. 그리고 스왑 파티션은 파일을 다루지 않기 때문에 아이 노드 개념이 없습니다. /swap와 사이에는 큰 차이가 swap있습니다.
CVn

0

아니요, 여러 가지 이유로 / boot 파티션이 필요하지 않다고 생각합니다.

  • / boot 폴더가 너무 작아서 /에 포함시키지 않을 수 있습니다
  • / boot의 파일과 폴더는 자주 업데이트되고 액세스되지 않으므로 파티션을 만들 필요가 없습니다. / tmp 또는 / swap 폴더와 다릅니다. 프로그램은 / boot에 쓰지 않습니다.
  • / boot는 initramfs 이미지가 업데이트 될 때 시작 및 커널 업데이트 중에 만 사용됩니다.
  • 하나의 RAID 5 어레이에 / boot to / root를 포함시킬 수 있으며 GRUB2와 함께 작동합니다. 모든 드라이브에 대해 GRUB2를 MBR에 추가하십시오. 첫 번째 드라이브가 죽은 경우 두 번째, 세 번째 드라이브 ... 드라이브에서 부팅 할 수 있습니다.
  • 적은 마운트 = 적은 UUID = 가시성 = 단순성
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.