다른 프로그램을 설치하지 않고 기존 시스템에 커널을 설치하거나 업그레이드 할 수 있는지 묻는다면?
리눅스 커널은 일반적으로라는 이진 파일입니다 vmlinuz-x.x.x-x-name
에 boot
는 X의이 버전 번호입니다 (일반적으로 하드 드라이브의 시작 부분에 별도의 작은 파티션입니다) 디렉토리. "name"은 컴파일 타임에 설정할 수있는 커널의 선택된 이름 일 뿐이며, 커널이 어떤 유형의 기계 또는 아키텍처인지 또는 다른 이유로 식별 할 수 있습니다.
GRUB
부팅시 부트 로더에 의해로드되며, 일반적으로 BIOS ROM에 의해 호출되는 MBR의 부팅 코드에 의해 호출됩니다. 일단로드되면 "열려"있거나 특별하게 보호되지 않습니다. 따라서 해당 파일을 다른 작동중인 커널로 바꿀 수 있습니다. 그러나 GRUB
부팅 할 커널을 여러 개 선택할 수있는 멋진 기능이 있습니다. 따라서 추가 커널을 해당 목록에 추가하는 것이 좋지만 문제가 발생할 경우를 대비하여 알려진 원래 작동 커널을 유지하십시오.
거의 모든 배포판에서는 장치 드라이버가 별도의 파일에있는 "모듈 식"커널을 만듭니다. 따라서 대부분의 커널에는 부팅시 사용할 수있는 드라이버가 포함 된 파일 시스템이 필요합니다. 이것이 "initrd"(초기 RAM 디스크) 또는 "initramfs"입니다. GRUB
커널을 메모리의 위치에로드하고 initrd를 다른 위치에로드하고 Linux로 시작하여 initrd가 어디에 있는지 알려주는 커널로 이동합니다.
드라이버는 커널에 "내장"될 수 있으므로 부트 로더가 vmlinuz
이미지를 로드 할 때 자동으로로드되어 사용 가능 합니다. 다양한 시스템 (예 : 대부분의 배포판)에서 작동하는 커널은 일반적으로 사용 가능한 하드웨어가 부팅 프로세스에서 나중에 검색되고 현재 하드웨어를 나타내는 모듈 만로드되므로 커널에 내장 된 것을 최소화합니다.
initrd를 수정하고 작성하는 도구가 있습니다. 데비안에는 훌륭한 도구가 있으며 다른 배포판도 마찬가지라고 생각합니다.
따라서 kernel.org에서 최신 커널을 다운로드하여 컴파일하여 새 커널 이진 이미지를 만들려면 해당 커널에서 작동하는 드라이버로 initrd를 만들거나 업데이트해야합니다. 드라이버가 실행중인 커널 버전과 일치해야하므로 이전 initrd가 작동하지 않습니다.
initrd 파일은 initrd.img-x.x.x.x-name
커널과 비슷하게 이름이 붙여 지며, 커널과 마찬가지로 부팅 후에 교체 할 수 있으며 새 커널 + initrd로 성공적으로 부팅 할 수있을 때까지 알려진 initrd를 삭제하지 않는 것이 좋습니다.
나는 그것이 어떤 맥락을 제공하기를 바랍니다.
추가 프로그램이 거의 또는 전혀 설치되지 않은 "barebones"Linux 설치를 찾고 있다면, 내가 가장 좋아하는 선택은 항상 데비안 netinst
이미지를 설치 한 것 입니다. 명령 행 텍스트 콘솔을 실행 nano
하고 텍스트 편집기로 사용하는 데 필요한 가장 기본적인 도구 만 있습니다.