오늘은 시스템을 손상시키는 일부 파일을 복구하기 위해 라이브 USB로 부팅해야 했습니다. 나는 모든 가이드가 말한 것을 거의 따랐습니다.
mount /dev/sd3 /mnt
mount /dev/sd1 /mnt/boot
chroot /mnt
(SWAP(예: sda2)도 마운트해야 하는지 잘 모르겠지만 본 적이 없어서 건너뛰었습니다.)
내 질문은: 내가 왜 이 일을 하는가? cd
다음을 사용하여 라이브 USB에 있는 파일에 액세스할 수 있습니다. 이게 무슨 문제야?
답변1
루트 디렉터리를 변경하면 본질적으로 죽은 시스템으로 전환됩니다. 고장난 자동차의 시동을 걸기 위해 작동 중인 자동차를 사용하는 것과 같습니다.
이제 /
죽음 시스템을 언급하면 모든 명령이 함께 잘 작동합니다. 이제 내 쉘 기록에 내가 시작한 활성 시스템이 아닌 죽은 시스템에 수행한 작업이 포함되어 있다는 점이 마음에 듭니다. 또한 작업 중인 시스템 apt
에 암시적으로 종속되어 있고 그렇지 않은 다른 많은 도구를 사용할 수 있습니다 . 많은 도구(예 : )에는 루트 전환을 위한 자체 옵션이 있지만 이를 입력하는 것은 매우 지루하고 오류가 발생하기 쉽습니다./
/mnt
journalctl
grub-install
답변2
chroot
모든 것이 꼭 필요한 것은 아닙니다 . 단지 파일을 편집하고 싶다면 일반적으로 파일 없이 편집할 수 있습니다.
일부 시스템 도구는 시스템이 특정 방식으로 배치되기를 기대합니다. 패키지 관리자(rpm, yum, dpkg, apt, apk...)와 같은 것입니다. 시스템이 다르게 배치되어 있음을 이러한 명령에 알릴 방법이 없습니다.
Debian과 같은 실제 예를 들어보겠습니다 dpkg
. 설치된 패키지를 추적합니다 /var/lib/dpkg
. Live USB로 부팅하고 손상된 시스템을 /mnt
dpkg 저장소에 설치하면 이제 잘못된 위치에 있게 됩니다 /mnt/var/lib/dpkg
. dpkg에게 이를 사용하도록 지시할 수 없으므로 dpkg를 사용하여 다음 작업을 수행할 수 없습니다. 고장난 시스템을 수리하지 않는 한......
chroot /mnt
모든 것을 원래 위치로 옮기면 . 따라서 원래 위치 /mnt/var/lib/dpkg
로 돌아가면 dpkg가 다시 올바르게 실행될 것입니다./var/lib/dpkg
아니요, 일반적으로 스왑을 추가할 필요가 없습니다. 스왑에 대한 일반인의 설명은 RAM을 확장하기 위해 일부 하드 드라이브 공간을 사용한다는 것입니다. 이러한 유형의 활동에는 일반적으로 기존 RAM의 일부만 필요합니다. RAM이 부족할 경우 언제든지 추가할 수 있습니다. 따라서 파일에서 SWAP를 설치하면 다음을 수행 /var/swap
할 수 있습니다.
swapon /mnt/var/swap
당신 앞에 chroot
또는
swapon /var/swap
chroot 후.