어떻게 이런일이 일어 났습니까? (이전의 긴 답변)

어떻게 이런일이 일어 났습니까? (이전의 긴 답변)

Oracle VirtualBox 4.3.24에서 Ubuntu 14.04를 실행하고 게스트 추가 마운트가 완전히 중단되었습니다. 온라인에서 해결책을 찾기 위해 꽤 많은 시간을 보냈지만 아무런 도움이 되지 않았습니다...

여기에 이미지 설명을 입력하세요

아래 제안된 대로 수동으로 마운트하고 웹에서 ISO를 다운로드하려고 했습니다(VirtualBox와 일치하는 버전). 같은 오류:

여기에 이미지 설명을 입력하세요

편집하다:

이제 일부 폴더가 "읽기 전용"이 되어 큰 문제가 발생합니다. 새로운 Ubuntu 14.04 이미지를 설치해도 도움이 되지 않습니다... 그래서 VirtualBox 자체를 다시 설치하면...

답변1

Linux 이미지를 다시 설치하여 마운트 문제를 해결할 수 있었습니다.

sudo apt-get install --reinstall linux-image-$(uname -r)

그런데 모든 것은 VirtualBox 업그레이드로 시작되었습니다. 양방향 클립보드가 작동하지 않아 게스트 추가 ISO를 다시 삽입하려고 했습니다. 이로 인해 위의 내용이 발생했습니다. 이제 게스트 추가가 다시 마운트되었지만 클립보드가 작동하지 않습니다...

답변2

TL;DR 재부팅하면 빠르게 해결할 수 있습니다..apt-get을 사용하지 마십시오. 하단의 "재부팅하세요!"를 참조하세요.


어떻게 이런일이 일어 났습니까? (이전의 긴 답변)

다음과 같은 경우 정확히 이런 종류의 문제가 발생합니다.

  • 커널을 업그레이드합니다(예를 들어 .66에서 .67로).
  • 실행 apt-get autoremove하고 어떻게든 실행 중인 커널을 제거하거나 "이전" 커널을 수동으로 제거하여 /lib/modules/kernel.66에서 모든 모듈을 제거합니다.
  • 재부팅하지 마십시오. 그러면 "이전" .66 커널이 계속 실행됩니다. 로드된 모듈은 메모리에 남아 있고 모든 것이 작동하지만새 모듈을 로드할 수 없습니다..66 모듈이 삭제되었기 때문입니다.
  • 아직 로드되지 않은 모듈을 로드해야 하는 작업을 수행해 보세요.

VirtualBox ISO를 설치하려면 ISO9660 지원 모듈을 로드해야 할 수도 있습니다.

실행 중인 커널(.66)이 /lib/modules/kernel.66 에서 아무 것도 찾지 못하기 때문에 이제 요청한 모듈을 더 이상 자동 로드할 수 없습니다.모듈이 존재합니다, 그러나 이는 /lib/modules/kernel.67에 있으며 현재 .66 커널은 이에 대해 아무것도 모릅니다(그리고 일치하지 않는 모듈을 로드하는 것은 권장되지 않습니다).

이름이 지정되지 않은 커널을 다시 설치하면 실행 중인 커널 모듈도 다시 설치되므로 ../.66/.../isofs.ko를 다시 사용할 수 있게 되고 재부팅이 필요하지 않게 됩니다.이는 설치된 커널의 다운그레이드이므로 업데이트 문제는 그대로 유지됩니다.(아래 참조).

즉, Additions CD를 실행하면 해당 프로그램이 설치됩니다.달리기.66 커널,~ 아니다업데이트된 .67 커널(아직 실행되지 않음)

당신이 그런 상황에 처해 있다면 당신도 할 수 있다.틀림없이재부팅하여 문제를 해결하고(새 .67 실행 커널이 해당 모듈을 찾습니다)아마새 커널에 속한 모듈을 로드하면( isofs매우 안정적임) 중요한 커널 업그레이드를 수행하지 않는 한 여전히 호환됩니다(이것은 아직 권장되지 않습니다!):

# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'

위의 내용은 귀하가 겪고 있는 근본 오류입니다("알 수 없는 파일 시스템 유형").

# uname -a
Linux virtual 3.13.0-66-generic ...

그래서 우리는 어떤 버전의 모듈이 설치되어 있는지 확인합니다. .66이어야 합니다.

# ls /lib/modules
3.13.0-67-generic

...그러나 디렉토리는 하나 뿐이고 .67입니다(.66 디렉토리가 있을 수 있지만 비어 있을 수 있습니다. 이 경우 du -sh /lib/modules/*다양한 디렉토리가 차지하는 공간을 알려주므로 빈 디렉토리와 가득 찬 디렉토리를 구분할 수 있습니다).

다시 grub 없이 이전 커널 이미지를 다시 설치해도 실제 문제는 해결되지 않습니다.

모듈 및 헤더와 함께 실행 중인 커널을 다시 설치합니다. 이제 grub최신 커널을 로드하도록 설정된 두 커널이 모두 있습니다 .

ISO CD-ROM을 마운트할 수 있으며(이제 모듈이 있기 때문에) VBox 모듈이 컴파일됩니다(헤더가 설치되었기 때문에).

실행 중인 .66 커널용 모듈을 컴파일하고 잠시 동안 작동합니다.

처음 재부팅하면 VirtualBox가 전혀 추가되지 않은 .67 커널을 보게 될 것입니다.

커널을 다시 설치해도 실제 문제는 해결되지 않습니다.

apt-get install --reinstall linux-image-$(uname -r)

위와 같이 처음 재부팅할 때 다운그레이드된(또는 "업그레이드되지 않은" 것이 더 좋음) 커널을 발견하게 됩니다. 곧 Ubuntu가 업그레이드를 시도할 것입니다. 그러면 시작한 곳으로 돌아가게 되며(아래 참조: "커널 다운그레이드") 재부팅하고 Virtualbox Additions를 다시 설치해야 합니다.

ISO 모듈을 패치해도 실제 문제는 해결되지 않습니다.

커널 66과 67 사이에는 아무런 작업도 수행되지 않았고 바이너리는 본질적으로 변경되지 않았기 때문에 ISO9660 모듈을 모두 강제로 로드할 수 있으므로 다음을 시도합니다.

# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko

오류가 없습니다. 효과가 있었습니다. 커널 .66은 커널 .67에서 모듈을 로드했습니다. CD-ROM을 다시 마운트해 보겠습니다.

# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only

여기요! 효과가 있었어요!

예, 하지만 설치되는 CD는 VirtualBox Additions이므로 이는 여전히 실질적인 도움이 되지 않습니다.달리기커널 헤더를 설치해야 합니다. 실행 중인 커널인 경우모듈더 이상 거기 없어요,커널 헤더도 마찬가지일 가능성이 높습니다.. 따라서 CD-ROM을 마운트할 수는 있지만 시작 시 설치 프로그램이 실패합니다.

또한 어떻게든 헤더를 찾았고 컴파일이 실패하지 않았더라도 새로 컴파일된 Virtualbox 모듈은 갈 곳이 없습니다. .66 모듈 디렉토리가 정리되었기 때문입니다(이것이 모듈이 isofs처음에서 발견되지 않은 이유입니다). 장소!).

하지만 이전 커널의 모듈과 헤더 디렉터리를 복원하여 모든 문제를 해결했다고 가정해 보겠습니다. 이제 비용이 많이 드는 (그리고 부분적인) 커널 다운그레이드를 완료했으며 추가 사항은 다음과 같습니다.잃어버린다음 재부팅 시 나머지 .66 커널과 함께 새로 설치된 .67 커널이 활성화됩니다. .66 헤더가 있는 .66 커널에서 시작된 Virtualbox Additions CD는 .67이 아닌 .66 커널 모듈을 충실하게 설치했기 때문입니다.

커널을 다운그레이드하면 작동할 것입니다... 잠시 동안은요.

만약 우리가제거하다.67 커널을 교체하고 대신 모듈과 함께 .66 커널을 다시 설치하면 상황이 한동안 이상해질 것입니다. 위의 "ISO 모듈 강제" 솔루션처럼 재부팅이 필요하지 않습니다.

그리고 추가 문제가 있는 커널이 설치되어 있지 않기 때문에 재부팅해도 아무 것도 잃지 않습니다.

그러나 이런 방식으로 커널은 여전히 ​​"업그레이드 예정" 목록에 있으며 이와 동일한 문제는 조만간(자동 업데이트 빈도에 따라 일반적으로 다음 날 또는 다음 주) 발생할 수 있습니다.

부여된,이제 당신이 선택한 좀 더 적절한 순간에 그것이 일어나도록 할 수 있습니다., 이는 상당한 가치가 있을 수 있습니다. 지연되는 프로젝트의 코딩 마라톤 도중에 강제 업그레이드하는 것은 악마입니다.

그러니 그냥 재부팅하세요! (그리고 Additions CD를 다시 실행하세요).

재부팅하면 이미 설치된 최신 .67 커널이 활성화되고 모든 모듈과 헤더가 거기에 있습니다. 그중에는 isofsISO9660 CD 파일 시스템을 읽는 모듈이 있습니다.

 sudo reboot

재부팅 후 CD-ROM이 작동하고 게스트 추가를 설치할 수 있습니다.

추가 기능을 사용하여 VirtualBox에서 커널을 업데이트하는 "가장 좋은" 순서는 다음과 같습니다.

 apt-get update
 apt-get upgrade              (or apt-get dist-upgrade)
 reboot                       
 (re)install VirtualBox Additions on the new kernel that is now running
 apt-get autoremove

(다음에 있는 최신 커널은 보안상의 이유로 자동 제거되지 않아 "돌아가기"가 가능합니다).

답변3

다른 답변에 따르면 일반적으로 재부팅하면 문제가 해결될 수 있습니다.

어떻게든 "iso9660" 모듈이 로드되지 않았습니다. depmod모든 모듈을 스캔하고 모듈 종속성을 생성합니다.

sudo depmod -a
sudo mount /dev/sr0 /mnt
ls -l /mnt

이렇게 하면 문제가 해결됩니다.

답변4

패키지를 업그레이드하고 다시 시작하여 이 문제를 해결했습니다(Ubuntu 16.04에서).

sudo apt-get update
sudo apt-get upgrade
sudo reboot

관련 정보