차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
grub_boot_kernel_argument_설정 [2023/04/14 06:35] – 만듦 koovgrub_boot_kernel_argument_설정 [2023/04/14 07:54] (현재) – [GRUB configuration 을 업데이트] koov
줄 9: 줄 9:
 <code bash> <code bash>
 # 파라메터 추가시 # 파라메터 추가시
-grubby --update-kernel=ALL --args="<NEW_PARAMETER>"+grubby --update-kernel=ALL --args="<NEW_PARAMETER>"
  
 # 다중 값 추가시 예제 (반드시 ""로 묶어줘야함) # 다중 값 추가시 예제 (반드시 ""로 묶어줘야함)
-grubby --update-kernel=ALL --args="rd.lvm.lv=vg/lv1 rd.lvm.lv=vg/lv2"+grubby --update-kernel=ALL --args="rd.lvm.lv=vg/lv1 rd.lvm.lv=vg/lv2"
  
 # 파라메터 제거시 # 파라메터 제거시
-grubby --update-kernel=ALL --remove-args="<PARAMETER_TO_REMOVE>"+grubby --update-kernel=ALL --remove-args="<PARAMETER_TO_REMOVE>"
  
 # 특정 커널만 적용시 # 특정 커널만 적용시
-grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="<NEW_PARAMETER>"+grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="<NEW_PARAMETER>"
 </code> </code>
 </WRAP> </WRAP>
줄 24: 줄 24:
 ===== 수동으로 수정 적용시 ===== ===== 수동으로 수정 적용시 =====
 ''/etc/default/grub'' 파일을 수정한다. ''/etc/default/grub'' 파일을 수정한다.
 +예를 들어 아래 항목을 추가한다고 할때
 <WRAP prewrap> <WRAP prewrap>
 <code vim> <code vim>
줄 32: 줄 32:
 </WRAP> </WRAP>
  
-GRUB configuration 을 업데이트 한다.+===== GRUB configuration 을 업데이트 ===== 
 +커널파라메터를 수정했으면 해당 내용을 ''grub.cfg''에 반영해야 한다. 
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
 # Legacy-BIOS System # Legacy-BIOS System
-grub2-mkconfig -o /boot/grub2/grub.cfg+grub2-mkconfig -o /boot/grub2/grub.cfg
  
-# UEFI-BIOS System +# UEFI-BIOS System (실제로는 위의 legacy config를 참조하기때문에 안해도 상관 없음) 
-grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg+grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
 </code> </code>
 </WRAP> </WRAP>
 +
 +====== 주의사항 ======
 +''grubby''로 추가된 파라메터는 ''/etc/default/grub'' 에 ''GRUB_CMDLINE_LINUX''와 같이 추가가 되는데 이것은 따로 ''/boot/grub2/grub.cfg''에 추가하지 않아도 자동으로 반영이 되는 구조이다.
 +그런데 여기서 문제는 동일한 값을 여러개 넣은경우는 문제가 된다.
 +예를 들어 ''rd.lvm.lv''라는 파라메터를 여러개 넣는다고 가정하자
 +''/boot/grub2/grub.cfg''내에
 +<WRAP prewrap>
 +<code vim>
 +  set kernelopts="root=/dev/mapper/rhel_kvm33-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel_kvm33-swap rd.lvm.lv=rhel_kvm33/root rd.lvm.lv=rhel_kvm33/swap rhgb quiet "
 +</code>
 +</WRAP>
 +위와 같이 존재한다고 할때
 +
 +''grubby''를 통해서 ''%%--arg="rd.lvm.lv=rhel_kvm33/root rd.lvm.lv=rhel_kvm33/swap rd.lvm.lv=rhel_kvm33/test"%%'' 와 같이 동일한 파라메터의 추가된 값 ''rd.lvm.lv=rhel_kvm33/test'' 를 추가했다고 하면
 +
 +''/etc/default/grub'' 에는 해당 내용이 추가되지만 실제 부팅할때 이 값은 반영되지 않는다. 왜냐하면 에서 부팅할때 ''/boot/grub2/grub.cfg''에 정의되어 있지 않은 추가 항목만 반영이 되기 때문에 실제 ''/boot/grub2/grub.cfg''에는 ''rd.lvm.lv''라는 파라메터가 있기 때문에 동일한게 몇개 추가가 되던 있는걸로 가정하고 추가적으로 로딩 하지 않는다.
 +
 +따라서 이런경우 꼭 ''grub.cfg''를 업데이트 해줘야 한다.
 +
 +
  
  
  • grub_boot_kernel_argument_설정.1681454146.txt.gz
  • 마지막으로 수정됨: 2023/04/14 06:35
  • 저자 koov