아름다운 Raspberry Pi B 2에 내장된 Raspbian 3.18.7 ARMV71 GNU/Linux에서 /etc/init.d
명백히 손상되고 어리석은 파일이 있는 파일 아래에 일부 "조용한" 옵션을 구성하면 다음과 같은 증상이 나타납니다.
- Linux가 시작되면 프롬프트가 표시됩니다
root@(none)
. - 시스템은 "읽기 전용 파일 시스템"입니다.
- 전부는 아니더라도 대부분은 파손된 경우 작동합니다.
오류는 주석 처리된 줄 아래에 있으므로 /etc/init.d/dphys-swapfile
그대로 두어야 합니다. 이제 편집이 불가능합니다.
물론 원본 파일의 백업은 <filename>_bkp
이름 아래에 있지만 시스템은 읽기 전용이고 이름 바꾸기 명령은 모두 비활성화되어 있습니다.
init.d
이러한 파일 아래의 "공격적인" 줄을 편집하거나, 백업 파일을 복원하거나, 복구 모드로 부팅하려면 어떻게 해야 합니까 ?
Raspberry Pi 스왑 솔루션은 모두 "삭제 및 재설치" 유형이지만 이는 Linux 스타일의 문제이며 이러한 어리석음을 복구할 수 있는 또 다른 명령줄 방법이 있다고 확신합니다.
답변1
프롬프트가 나타나면 root@(none)
복구가 거의 완료된 것입니다. 이미 루트 쉘이 있습니다. 복구에서 가장 어려운 부분은 일반적으로 문제를 파악하는 것이지만 올바른 파일의 백업이 있으면 쉬울 것입니다.
가장 먼저 해야 할 일은 몇 가지 파일 시스템을 마운트하는 것입니다. 수행해야 하는 작업에 따라 필요할 수도 있고 필요하지 않을 수도 있지만 해를 끼치지는 않습니다.
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
mount -t tmpfs -o mode=1755 tmpfs /tmp
mount -t tmpfs -o mode=1755 tmpfs /run
해당 항목이 없는 경우 /run
(귀하의 Raspbian 버전에 존재하는지 여부는 알 수 없음) 이 줄을 무시하세요. 그렇지 않다면 /dev/pts
, 이는 뭔가가 더 빠져 있다는 신호입니다 /dev
. 이는 시스템에 devtmpfs가 내장되어 있음을 의미하므로 를 실행해야 합니다 mount -t devtmpfs devtmpfs /dev
.
또한 루트 파일 시스템 읽기/쓰기를 다시 마운트해야 합니다. 그런 다음 새 셸을 시작합니다(얻은 셸은 프로세스 ID 1이므로 신호 처리가 이상해지며 특히 Ctrl+ C및 Ctrl+가 Z작동하지 않게 됩니다).
mount -o remount,rw /
bash
이제 수리할 준비가 되었습니다.
완료되면 루트 파일 시스템을 읽기 전용으로 다시 마운트하고(다른 파일 시스템은 읽기-쓰기로 마운트함) 재부팅합니다.
mount -o remount,ro /
reboot -f