ubuntu 는 커널 컴파일 & 인스톨 방법이 다른가요?
virtual box와 i7 최신 노트북 windows8 환경에서 운용중입니다(uefi 환경일듯 합니다)
rhel 계열 os를 사용하다가 ubuntu로 넘어와봤는데 생각보다 많이 어려움을 겪는 중입니다
14.04 LTS 를 설치하고 3.18 커널을 다운로드 받아 컴파일 하고
make install
make modules_install INSTALL_MOD_STRIP=1
reboot 하였는데...웬걸..........
맙소사...부팅이 안됩니다
Gave up waiting for root device. Common problems:
-Boot args (cat /proc/cmdline)
-Check rootdelay= (did the system wait long enough?)
-Check root= (did the system wait for the right device?)
-Missing modules (cat /proc/modules; ls /dev)
/dev/disk/by-uuid/... does not exist ...
이런식으로 뜨길래 uuid가 틀렸나보네?하는 생각이 들었습니다
일단 grub에서 원래 커널 이미지로 부팅하여 uuid를 확인해봤으나 맞습니다
뭔가 uuid 파싱에 문제가 있나 싶어서 grub.cfg를 직접 수정해서 root=by-uuid 로 되어있는걸 root=LABEL=/ 로 바꾸었습니다
do not edit라고 써있었는데 grub2 사용법을 아직 잘 몰라 그냥 강제 에디트 했습니다
(제가 이미지가 있는쪽 파티션 LABEL을 /로 주었습니다)
그리고 리부팅을 해보았는데 이제는
/dev/disk/by-label/\x2f does not exist 라고 나오네요
fstab 의 uuid 파싱이 문제인가 싶어 기존 커널로 부팅한 다음 fstab을 LABEL로 교체 하였는데 여전히 부팅이 되지 않습니다
기존 커널은 잘 되구요...
make install 할 때 kernel의 makefile이 ubuntu 환경에서 제대로 안되고 또 뭔가를 해줘야 하나봅니다
제가 http://www.dedoimedo.com/computers/ubuntu-initrd-bug.html 이 상황을 겪고 있습니다
그런데 이 링크에 있는 솔루션은 좀 변칙적인 솔루션이네요...되는거로 복사해라........
어떻게 해야 될까요
커널 파라미터에 루트 디바이스를 정확하게 지정하지
커널 파라미터에 루트 디바이스를 정확하게 지정하지 않을 때 나는 오류네요.
커널이 초기화 완료된 뒤에 루트 파일시스템을 찾는데 /etc/fstab 같은거 읽을 수 없으니 파라미터에 루트디바이스로 적힌 파티션을 직접 마운트하는데 이게 실패해서 나는겁니다. 직접 빌드하시는거면 root device를 라벨이나 UUID로 하지말고 /dev/sdXX 식으로 적으세요. initramfs 같은 임시 램디스크는 만들 필요 없습니다.
근데 루트 파일시스템이 S/W RAID나 LVM상의 파티션에 위치한건 아니겠죠?
이런경우는 초보자라면 피하심이. 부팅 가능하게 할 수 있지만 작업이 만만치 않습니다.
Written By the Black Knight of Destruction
자문자답을 해보자면 최근 커널에서는 방법이 조금
자문자답을 해보자면 최근 커널에서는 방법이 조금 바뀐거 같습니다
예전 2.6 kernel 에서는 안그랬는데 3.x 부터는 make modules_install 한 다음 make install을 해야 정상적으로 되는거 같습니다
cent os에서도 install 한 후에 modules_install 하면 오류 메세지가 뜨네요
boot 디렉토리에서 3.18.x 파일 다 지운다음
grub-mkconfig -o /boot/grub/grub.cfg 해서 다시 환경설정 초기화 하고
make modules_install 한 다음 make install 하고 리부팅 해서 3.18로 부팅 성공했습니다
버그겠죠..?
정상적으로 커널 파라미터에 있는 인자가 파싱 안되는거 같습니다 /dev/sda1도 안먹히더라구요
댓글 달기