Ubuntu Basics(Ubuntu를 처음부터 설치)를 설치하려고 하는데 문제가 발생했습니다... 설치 후 읽기 전용 파일 시스템이 있는 시스템을 얻었는데 /boot가 자동으로 마운트되지 않습니다.
이것은 내 /etc/fstab입니다:
/dev/sda1 /boot vfat defaults,noatime 0 2
/dev/sda2 / ext4 defaults,noatime 0 1
설치하기 위해 기본 시스템에 루트를 연결하는 방법은 다음과 같습니다.
mount /dev/sda2 /mnt
cp /etc/resolv.conf /mnt/etc/resolv.conf
mount --types proc /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --make-rslave /mnt/sys
mount --rbind /dev /mnt/dev
mount --make-rslave /mnt/dev
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
chroot /mnt /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
<installation steps>
exit
cd
umount -l /mnt/dev{/shm,/pts,}
umount -R /mnt
reboot
다음 명령을 실행하면 시스템이 쓰기 가능해집니다.
mount -o remount,rw /
내가 뭘 잘못했나요?
답변1
짧은 답변
설치 단계에서 이 패키지를 설치해야 합니다 systemd-sysv
.
긴 대답
Ubuntu Focal을 설치하려는 것 같습니다. Focal의 Ubuntu 기본 이미지에는 이 바이너리가 포함되어 있지 않습니다 /sbin/init
. 기본 systemd를 사용한다고 가정하면 이 바이너리는 패키지에서 제공됩니다 systemd-sysv
. 일부 이전 버전의 Ubuntu에 대한 Ubuntu 기본 이미지는 다음과 같습니다.하다include /sbin/init
이므로 이전 지침에서는 이를 언급하지 않을 수도 있습니다. (이미지를 더 이상 사용할 수 없는 이유 /sbin/init
는 아마도 컨테이너에 일반적으로 필요하지 않기 때문일 것입니다. 이러한 이미지의 사용 사례가 늘어나고 있습니다.)
그렇다면 초기화 없이 쉘 프롬프트를 표시하려면 어떻게 해야 할까요? init
의 스크립트는 폴백을 사용하여 "실제" 초기화를 initrd
수행하는 역할을 담당합니다. 찾을 수 없는 exec
경우 /sbin/init
일련의 대체 실행 파일을 시도하며 그 중 하나는 콘솔에 인쇄된 것과 유사한 메시지를 /bin/sh
받을 수도 있습니다 .Target filesystem doesn't have requested /sbin/init
그렇다면 루트 파일 시스템이 읽기 전용으로 마운트된 이유는 무엇입니까? GRUB 구성이 그렇게 하도록 지시하기 때문입니다. 실행 하면 처음에 읽기 전용 으로 마운트하라는 옵션이 포함된 것을 cat /proc/cmdline
볼 수 있습니다 . 이를 통해 필요한 경우 루트 파일 시스템의 오류를 수정하기 위해 init를 실행할 수 있습니다. 그러면 Init는 읽기 및 쓰기를 다시 마운트합니다.ro
initrd
/
fsck
/