GRUB에서 운영 체제 항목의 이름을 어떻게 변경합니까?

GRUB에서 운영 체제 항목의 이름을 어떻게 변경합니까?

나만의 운영체제를 만들고 싶어서 Archiso를 이용해서 배포용 이미지를 만들었습니다. 정말 멋지네요!

배포판 설치를 자동화하는 데 도움이 되는 Python 파일을 만들었습니다.

파일을 chroot로 전송한 후 GRUB를 설치하는 부분도 있습니다. 작동하지만 재부팅하고 설치된 시스템에 "Arch Linux"라고 표시됩니다.

Python으로 만든 설치 파일에서 다음 줄을 사용하여 os.system("COMMAND LINUX")Linux 명령을 실행합니다.

Arch Linux의 이름을 배포 이름으로 바꾸려면 명령이나 파일을 변경해야 합니까? GRUB를 설치한 후 설치 자동화 파일에 넣어 다시 시작한 후 "내 운영 체제"가 이미 나타나도록 하세요.

추신: /boot/grub/grub.cfg의 메뉴 항목을 변경하라고 말하지 마세요. 메뉴 항목은 자동으로 덮어쓰기되기 때문입니다.

답변1

/boot/grub/grub.cfg어떻게 생성되는지 아시나요 ?

파일을 생성하기 /etc/grub.d/위해 실행되는 스크립트 세트가 있습니다 . 일반적으로 지정된 스크립트는 현재 배포판에 대한 실제 부팅 메뉴 항목을 생성하는 역할을 합니다. 두 개 이상의 운영 체제가 설치되어 있는 경우 다른 운영 체제에 대한 메뉴 항목을 생성하는 스크립트일 수 있습니다.grub2-mkconfiggrub.cfg10_linux30_os-prober

적어도 데비안에서는 10_linux배포판 이름은 배포판의 변수 세트에서 가져옵니다. 하지만 거기에서도 명령을 사용하여 값이 간접적으로 설정됩니다.GRUB_DISTRIBUTOR/etc/default/grublsb_release -i -s

따라서 GRUB_DISTRIBUTOR변수 설정 방법을 변경하기만 하면 /etc/default/grubGRUB에 표시되는 배포 이름을 빠르게 변경할 수 있습니다.

그러나 실제 명령을 확인하고 싶을 수도 있습니다 /usr/bin/lsb_release(Arch에도 명령이 있다고 가정). 이것은 Python 스크립트인 것으로 밝혀졌습니다. 이 스크립트가 배포 이름을 가져오는 방식을 변경하여 "My OS"라는 결과를 출력하면 GRUB에 표시되는 이름이 자동으로 변경되지만 명령은 lsb_release여러 위치에서 사용될 수 있으므로 스크립트를 변경하면 다음을 수행할 수 있습니다. GRUB 메뉴뿐만 아니라 다른 여러 위치에서 "My OS" 이름을 가져옵니다.

그러나 패키지 관리 시스템이 이 명령에서 제공하는 정보도 사용하는 경우 lsb_release운영 체제 이름을 변경하면 사용자 정의 배포판에서 Arch 패키지를 사용하기가 더 어려워질 수 있습니다. 배포판이 "Arch의 사전 사용자 정의 버전"이 되기를 원한다면 아마 그렇게 하지 않을 것입니다.

관련 정보