/ cow의 정식 경로를 가져 오지 못했습니다.


42

우분투 12.10을 꽤 오랫동안 설치하려고하고 장애물을 하나씩 전달하려고합니다. 이제 나는 다음과 같은 상황에 처해 있습니다.

우분투 전용 PC와 10GB HDD를 가지고 있으므로 Wubi 및 이중 부팅 옵션이 없습니다.

DVD에서 설치하려고하는데 "주파수 부족"오류가 발생합니다. 그래서 USB 부팅 옵션에 적응해야했습니다. 그러나 내 PC는 부팅 할 수없는 USB이므로 해결 방법은 "Plop Boot Manager"입니다. 따라서 다음과 같이 설치 절차를 수행하고 있습니다.

  1. plop이 설치되어있는 CD 드라이브에서 시작합니다.
  2. plop 옵션에서 USB 부팅을 선택합니다.
  3. 부팅은 USB에서 시작됩니다.
  4. 모니터는 결국 "out of frequency"오류를 발생시킵니다
  5. Shift+ Alt+ F1를 눌러 터미널을 가져옵니다.
  6. 로 그럽을 엽니 다 sudo nano /etc/default/grub.
  7. 필요한 변경을 수행하십시오.
  8. sudo update-grub.

이제 여기에 다음과 같은 오류가 발생합니다.

/usr/sbin/grub-probe:error:failed to get canonical path of /cow.

내 시스템은

P4 3.06GHz, 1GB 램, OS가없는 10GB HDD, CRT lg StudioWorks (7 세)를 모니터링합니다. Mobo Mercury P4 266a NDMx (865 상당). XP에서 전체 시스템은 완벽하게 작동하지만 부팅 할 수없는 USB이며 다른 모든 장치는 완벽하게 작동합니다.

다음에 어떻게해야합니까?


컴퓨터에 Ubuntu를 실행하기위한 권장 최소 시스템 요구 사항이 있습니까? RAM이 1GB 미만인 컴퓨터에 12.04를 설치하는 데 문제가 있습니다.
CSCameron

예, 이제 시스템 사양을 질문에 추가했습니다.
ulkaNCST

askubuntu.com/questions/207663/… 시도해 볼 가치가 있습니다.
Rinzwind

5
우선 몇 가지 폴더에 하드 드라이브를 탑재, 말을 /mnt하고 chroot합니다 /mnt.
green

답변:


29

Ubuntu 라이브 CD (14.04 및 16.04로 부팅)에서 부팅 한 후, grub 파티션에 update-grub chroot'ed를 실행하여이 문제를 해결할 수있었습니다. ( /dev/sda1아래에서 grub을 설치 한 파티션으로 대체하십시오 . 모든 명령은 루트로 사용하십시오.)

mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
    mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2  # inside chroot

2
mount를 실행하려고하면 오류가 발생 NTFS signature is missing.합니다. NTFS가 아닌 Ext4 여야하기 때문에 이상합니다.
Cerin

@ Cerin, 나는 / dev / sda1이 나에게 적합한 파티션이라고 강조하지만, 그 볼륨이 NTFS라면 당신에게는 그렇지 않을 것입니다.
Nathan Kidd

귀하의 솔루션은 혼란 스럽습니다. 첫 번째 부분의 chroot에서 첫 번째 부분과 두 번째 부분을 실행해야합니까? 아니면 첫 번째 부분에서 수행 한 모든 것을 버리고 두 번째 부분 만 실행합니까? 왜 / dev / sda와 / dev / sda1을 모두 마운트합니까?
Cerin

2
나는 당신의 지시를 따르고 부팅 드라이브에 내 파티션 /usr/sbin/grub-probe: error: failed to get canonical path of '/boot'./boot있고 나머지는 다른 곳에있었습니다.
썰매

1
grub-install /dev/sda전에 추가 작업을 수행 update-grub해야했습니다.
kiw

10

부팅 할 드라이브를 찾습니다

mount

또는

parted -l

또는

fdisk /dev/sda

p를 입력하여 파티션을 나열하고 유형 83을 찾으십시오.

Fedora를 사용하는 경우 "vgs"및 "lvs"명령을 사용해야하고 mdraid가있는 경우 "cat / proc / mdstat"또는 mdadm -A --scan 또는 insmod raid1 또는 insmod raid5 및 mdadm -A --scan)을 사용하면 / dev / sda 대신 / dev / md0 또는 / dev / mapper / my-vg를 사용하게됩니다.

그런 다음 마운트 해보십시오

mkdir /mnt
mount /dev/sda1 /mnt
cd /mnt
ls -l

이것이 당신의 드라이브입니까? 시원한!

grub-install --recheck --root-directory=/mnt /dev/sda 

(또는 루트가있는 / dev 드라이브가 마운트 된 경로)

grub-install --recheck --root-directory=/mnt /dev/sda --force

(파티션이 마음에 들지 않으면 강제 실행하십시오.)

이제 grub으로 부팅해야하며, BIOS 설정에서 올바른 부팅 드라이브를 재부팅하고 선택한 후 또는 BIOS와 사용자의 속도에 따라 ESC 또는 F12를 눌러 grub 명령을 사용하여 부팅 할 수 있습니다. Grub 프롬프트-탭 완성을 사용하여 (hd0,1)이 아닌 (hd1,3) 또는 다른 것이 아닌 경우 찾을 수 있지만 grub이 드라이브를 읽을 수없는 경우 탭 완성이 때때로 몇 초 동안 정지됨 .

insmod linux
ls
root=(hd0,1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd
boot

또는 그대로 grub.cfg 파일이 그대로 남아있을 수도 있습니다.

grub-mkconfig -o /mnt/boot/grub/grub.cfg

1
파티션이 마음에 들지 -f않았지만 작동하지 않았습니다. 나는 사용했다--force
RM

GRUB에서 부팅하려면 시스템에서 위와 같이 변경해야했습니다. linux /vmlinuz root=/dev/sda1 (예 : 루트 폴더) initrd /boot/initrd.img (예 : add .img)
Warner

5

위의 코드를 기반으로 수정 된 솔루션

위의 해결책은 부트 파티션을 파일 시스템의 / (루트)에 마운트하기 때문에 문제없이 완전히 작동하지 않습니다. 따라서 grub은 물론 / boot가 존재하지 않는다고 불평합니다. 이 문제를 해결합니다.

mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir ; done
chroot /mnt/chrootdir
update-grub2  # inside chroot

보시다시피 모든 사람들이 쉽게 실행할 수 있도록 줄 바꿈을 제거했습니다.

또 다른 (더 간단한) 솔루션

계속 작동하는 데 문제가 있으면 / boot 파티션을 / (루트) 파티션에 복사해야합니다. 이를 위해 Ubuntu 라이브 부팅 DVD로 시스템을 시작하고 터미널을 엽니 다. 그것 안에 유형 :

sudo su
fdisk -l

어떤 파티션이 있는지 확인하십시오. 필자의 경우 sda1은 약 250MB의 내 / boot 파티션이고 약 500GB의 sda5입니다. 아래 명령에서이 값을 사용합니다.

mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/

mkdir /mnt/root/
mount /dev/sda5 /mnt/root/

cp -R /mnt/boot/ /mnt/root/boot/

데이터 파티션의 부팅 가능 플래그를 설정하고 부팅 파티션의 경우 제거하십시오.

fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR

컴퓨터는 이제 sda5 내부에서 부팅 파일을 찾습니다. chroot를 다시 할 시간입니다. 이번에는 grub에 필요한 일부 폴더가 있고 Ubuntu 라이브 디스크에서 이미 생성 된 폴더가 있습니다.

mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/

mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/

chroot /mnt/chrootdir/

grub-install /dev/sda

설치가 완료되었습니다. 오류가보고되지 않았습니다.

grub.cnf 파일이 생성되었다는 메시지가 표시되지 않으면 update 명령도 실행하십시오.

update-grub2 /dev/sda

이제 안전하게 재부팅하고 잘 알려진 부팅 메뉴가 다시 나타납니다.

이 솔루션은 물리적 서버에서 가상 머신으로 마이그레이션 한 후 저에게 효과적이었습니다. 누군가가 이것을 유용하게 사용하기를 바랍니다.


0

나는 오래된 문제이지만 오늘날 실제 버전의 민트 리눅스 (우분투 기반)와 같은 문제가있었습니다. 나는 매우 간단한 해결책을 찾았습니다! :-) 처음 설치하는 동안 인터넷 연결을 해제하십시오. 호환되지 않는 grub2의 로딩이 중지됩니다. 설치가 완료된 후 모두 업데이트하십시오.


0

같은 오류가 발생했습니다. 유일한 문제는 / cow가 여전히 /에 마운트되어 있다는 것입니다.

작은 sudo umount / cow 가 트릭을 수행했습니다.


-6

라이브 CD에서 사용할 때 오류를 발생시키는 update-grub 명령입니다. 나는 구루 구출을 할 때 비슷한 상황에 직면했다. 당신이 가진 문제는 update-grub 및 grub-install 명령이 라이브 CD에서 직접 작동하지 않는다는 것입니다 (왜 그런지 모르겠습니다). 따라서 명령이있는 / usr / sbin으로 이동하여 명령을 실행해야합니다 (예 : ./update-grub).


아니요, @ green7과 같이 하드 디스크와 chroot를 마운트해야합니다.
psusi

내 방법도 작동합니다. 시도 해봐. 그것의 간단한
aveemashfaq

1
당신은 방법이 없습니다. / usr / sbin은 이미 경로에 있으므로 CD를 넣을 필요가 없습니다. grub-install 및 update-grub을 라이브 CD에서 직접 실행할 수는 없습니다 (주의 한 바와 같이). 하드 드라이브에 설치된 OS가 아닌 현재 CD를 부팅하도록 grub을 설정하려고 시도하기 때문에 grub을 설정하려고합니다. 드라이브.
psusi

물론 이것은 작동하지 않습니다. "/ cow의 표준 경로를 얻을 수 없습니다"오류가 발생합니다. 그리고 / usr / sbin에 cd-ing에 관한 것들 ... 오 소년.
dan3

사람들을 사용해보십시오. 그것은 항상 나를 위해 일했다
aveemashfaq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.