chroot를 통해 복제 부팅 수정을 시도했습니다(새 프로세서, 부팅 시 중단됨). liveUSB로 부팅하고 파일 시스템을 /mnt에 마운트합니다. 실행하면 update-initramfs -uv
거의 끝까지 계속 진행하다가 다음 오류와 함께 실패합니다.
...
Adding module /lib/modules/4.19.0-25-amd64/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko
Adding module /lib/modules/4.19.0-25-amd64/kernel/drivers/infiniband/core/ib_uverbs.ko
Adding module /lib/modules/4.19.0-25-amd64/kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko
Adding config /etc/initramfs-tools/conf.d/resume
/usr/sbin/mkinitramfs: 333: /usr/sbin/mkinitramfs: cannot create /dev/null: Directory nonexistent
E: no ldd around - install libc-bin
Removing /boot/initrd.img-4.19.0-25-amd64.dpkg-bak
update-initramfs: failed for /boot/initrd.img-4.19.0-25-amd64 with 1.
나는 이런 일이 일어나는 것을 본 적이 없으며 최선의 진행 방법을 모릅니다. /dev
읽기 전용 디렉터리 가 아닌가요 ? 나는 달리기를 시도했지만 apt auto-clean
아무것도 해결하지 못했습니다. 나는 그것을 실행하려고 했지만 apt auto-remove
4GB의 데이터를 출력하고 싶었고 그렇게 하도록 허용할지 확신이 없었습니다.
최선의 진행 방법에 대한 제안이 있으십니까?
편집: 나는 또한 이것을 시도했고 udevadm trigger --sysname-match=null
이것이 나에게 running in chroot, ignoring request
. 나는 mknod -m 0666 /dev/null c 1 3
내가 일반적으로 들었던 것을 시도했다 no such file or directory
. 확실히 그것을 좋아할 것입니다.
EDIT2: 관련 파티션을 마운트한 방법은 다음과 같습니다.
root@debian: ~ # mount /dev/sda2 /mnt
root@debian: ~ # mount /dev/sda1 /mnt/boot/efi/
root@debian: ~ # mount --bind /proc /mnt/proc
root@debian: ~ # mount --bind /sys /mnt/sys
root@debian: ~ # mount --bind /dev /mnt/dev
root@debian: ~ # mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
root@debian: ~ # chroot /mnt/ /bin/bash
스왑이 있긴 sda3
한데 굳이 그럴 필요는 없을 것 같아요.
답변1
이것이 도움이 될 수 있습니다
재부팅하고 수행한 작업을 취소한 다음 Debian Live 터미널에서:
필요한 파일 시스템 마운트
mkdir /mnt/debian
mount /dev/sda2 /mnt/debian
cd /mnt/debian && mkdir -p boot/efi
mount /dev/sda1 /mnt/debian/boot/efi
mount --types proc /proc /mnt/debian/proc
mount --rbind /sys /mnt/debian/sys
mount --make-rslave /mnt/debian/sys
mount --rbind /dev /mnt/debian/dev
mount --make-rslave /mnt/debian/dev
mount --bind /run /mnt/debian/run
mount --make-slave /mnt/debian/run
- 임의로 선택할 수 있는:
swapon /dev/sda3
- 네트워킹 활성화:
cp --dereference /etc/resolv.conf /mnt/debian/etc/
위의 내용 중 일부는 실패할 수 있습니다.루트 다이어그램최소 설치 프로그램에서 사용됩니다. 그렇다면 디렉터리가 존재하지 않는다는 오류를 무시하세요.
계속하다:
공유 메모리 다시 생성
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm /run/shm
이제 필요한 마운트가 생성되었으며 chroot
수리를 진행할 수 있습니다.
Chroot 입력
chroot /mnt/debian /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
설명하다
이제 메시지가 표시되고 (chroot) root@debian #
복구를 완료할 수 있습니다. 귀하의 Cannot create /dev/null
오류는 필수 파일 시스템 단계( /dev
LiveCD에서 "빌려야" 함) 에서 6단계와 7단계를 수행하지 않았기 때문에 발생했다고 생각합니다 . 바라보다바인드 마운트에 대해 알아보기자세한 내용은 간단히 말해서 --rbind
또는재귀적 바인딩를 사용하면 한 파일 시스템 외부의 디렉토리를 해당 하위 디렉토리를 포함하여 다른 파일 시스템 내부에 "연결"할 수 있습니다. 위 목록에서 우리는 chroot에 /sys
, 및 를 효과적으로 /dev
"연결"합니다 . /run
를 사용 --rslave
하거나재귀적 종속성, 이제 chroot 내의 디렉터리와 하위 디렉터리를 변경하고 chroot 외부의 변경 사항을 유지하여 두 당사자를 동기화 상태로 유지할 수 있습니다. 시스템이 복구 스틱/CD에 있기 때문에 변경 사항은 재부팅 후에도 유지되지 않지만 재부팅하기 전에 마운트 해제 및 동기화되므로 chroot에서 수행됩니다.
답변2
오류는 다음과 같습니다.
cannot create /dev/null: Directory nonexistent
즉, 생성할 디렉터리 /dev/null
가 없기 때문에 생성할 수 없습니다./dev/
존재하다.
이 디렉토리에는 심각한 문제가 있습니다 /dev/
.