내 컴퓨터에 Linux Mint와 Manjaro Linux를 설치했습니다. MBR에만 Linux Mint를 설치했습니다. Manjaro의 경우 파티션을 생성했지만 /boot/efi
MBR 설치를 확인하지 않았습니다.
그래서 저는 grub
컨트롤을 위해 페퍼민트를 사용합니다. 이제 Manjaro를 시작하려고 하면 다음과 같이 표시됩니다.
ERROR: resume: no device specified for hibernation: performing fsck on
dev/sda11 /dev/sda11: clean 1727/915712 files, .... blocks
WARNING: The root device is not configured to be mounted read-write!It
may be fsck'd again later
:mounting /dev/sda11 on real boot running cleanup hook [udev]
ERROR: Root device mounted successfully, but /sbin/init does not exist.
sh:can't access tty; job control turned off
[rootfs /]#
쉘 프롬프트 후에는 아무것도 쓸 수 없습니다. 작동이 멈추거나 다음과 같은 메시지가 계속 표시되는 경우가 있습니다.
usb 3-3: device not accepting address 2, error -62
등...
init=/usr/lib/systemd/systemd
Google에서 본 것처럼 grub에 추가하려고 시도했지만 여전히 동일합니다.
Manjaro 설치의 경우 및 /
에 대해 별도의 파티션을 사용한다는 점에 유의해야 합니다 . 어쩌면 이것이 영향을 미칠까요? 내가 보기엔/usr
/var
여기.
그런데 문제는 아무것도 쓸 수 없어서 멈춘다는 것입니다.
블로그 게시물에 대한 댓글도 발견했습니다.여기그것은 다음을 규정합니다:
"/usr을 별도의 파티션으로 사용하는 경우 다음 요구 사항을 준수해야 합니다." - 종료 후크를 추가합니다. 종료 프로세스는 저장된 initramfs 복사본으로 리디렉션되고 /usr(및 루트)가 VFS에서 적절하게 마운트 해제되도록 허용합니다.
" - fsck 후크를 추가하여 /etc/fstab에서 /usr을 passno 0으로 표시합니다. 모든 사람에게 권장되지만 부팅 시 /usr 파티션을 fsck로 설정하려는 경우 필수입니다. 이 후크가 없으면 /usr은 절대 fsck되지 않습니다.
" - usr 후크를 추가합니다. 루트를 마운트한 후 /usr 파티션을 마운트합니다. 0.9.0 이전에는 /usr이 실제 루트 디렉토리의 /etc/fstab에 있으면 자동으로 마운트되었습니다."
그리고 mkinitcpio.conf를 변경할 때마다 mkinitcpio -p linux를 실행하여 실제로 새 이미지를 생성하고 올바른 위치에 배치하는 것을 잊지 마십시오.
/usr
내 것이 실제로 별도의 파티션에 있기 때문에 이는 유망한 것으로 들립니다 . 이러한 "후크"는 무엇이며 어떻게 추가합니까?
parted -l
:
Model: ATA TOSHIBA MQ01ABD0 (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 1075MB 1074MB ntfs Basic data partition hidden, diag
2 1075MB 1347MB 273MB fat32 Basic data partition boot
3 1347MB 1482MB 134MB ntfs Basic data partition msftres
4 1482MB 80,1GB 78,6GB ntfs Basic data partition msftdata
5 80,1GB 80,4GB 262MB ext4
6 80,4GB 90,4GB 10,0GB ext4 msftdata
7 93,0GB 102GB 9000MB ext4 msftdata
9 102GB 106GB 3999MB linux-swap(v1)
10 106GB 106GB 250MB fat32 boot
11 106GB 121GB 15,0GB ext4 msftdata
12 121GB 151GB 30,0GB ext4 msftdata
13 151GB 165GB 14,0GB ext4 msftdata
14 165GB 206GB 40,9GB ext4 msftdata
8 206GB 743GB 537GB ext4 msftdata
15 743GB 747GB 4000MB linux-swap(v1) msftdata
grub
:
menuentry 'Linux Mint 17 Cinnamon 64-bit, 3.13.0-24-generic (/dev/sda5)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 19af2e09-8946-4ca2-9655-75921f3609a5
else
search --no-floppy --fs-uuid --set=root 19af2e09-8946-4ca2-9655-75921f3609a5
fi
linux /vmlinuz-3.13.0-24-generic root=UUID=9356f543-f391-4ba5-9dcc-e8484d6935e0 ro quiet splash $vt_handoff
initrd /initrd.img-3.13.0-24-generic
}
menuentry 'Linux Mint 17 Cinnamon 64-bit, 3.13.0-24-generic (/dev/sda5) -- recovery mode' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 19af2e09-8946-4ca2-9655-75921f3609a5
else
search --no-floppy --fs-uuid --set=root 19af2e09-8946-4ca2-9655-75921f3609a5
fi
echo 'Loading Linux 3.13.0-24-generic ...'
linux /vmlinuz-3.13.0-24-generic root=UUID=9356f543-f391-4ba5-9dcc-e8484d6935e0 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.13.0-24-generic
}
menuentry 'Manjaro Linux (0.8.10) (on /dev/sda11)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-95ed019d-9269-4869-9f99-a03f002a53c6' {
insmod part_gpt
insmod ext2
set root='hd0,gpt11'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 95ed019d-9269-4869-9f99-a03f002a53c6
else
search --no-floppy --fs-uuid --set=root 95ed019d-9269-4869-9f99-a03f002a53c6
fi
linux /boot/vmlinuz-312-x86_64 root=/dev/sda11
initrd /boot/initramfs-312-x86_64.img
}
submenu 'Advanced options for Manjaro Linux (0.8.10) (on /dev/sda11)' $menuentry_id_option 'osprober-gnulinux-advanced-95ed019d-9269-4869-9f99-a03f002a53c6' {
menuentry 'Manjaro Linux (0.8.10) (on /dev/sda11)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-312-x86_64--95ed019d-9269-4869-9f99-a03f002a53c6' {
insmod part_gpt
insmod ext2
set root='hd0,gpt11'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 95ed019d-9269-4869-9f99-a03f002a53c6
else
search --no-floppy --fs-uuid --set=root 95ed019d-9269-4869-9f99-a03f002a53c6
fi
linux /boot/vmlinuz-312-x86_64 root=/dev/sda11
initrd /boot/initramfs-312-x86_64.img
}
}
답변1
@Leiaz가 의견에서 올바르게 지적했듯이 /sbin
Arch (및 Manjaro 확장에 따라)는 이제 mount 되지 않으면 존재하지 않음을 /usr/bin
의미합니다 . 따라서 초기 램디스크에 마운트되어 있는지 확인해야 합니다 . OP의 Arch wiki 인용문이 의미하는 바는 다음과 같습니다./usr
/usr/sbin/init
/usr
/usr을 별도의 파티션으로 사용하는 경우 다음 요구 사항을 준수해야 합니다.
mkinitcpio-generate-shutdown-ramfs.service를 활성화하거나 종료 후크를 추가하세요.
fsck 후크를 추가하고 /etc/fstab에서 /usr을 passno 0으로 표시합니다. 모든 사람에게 권장되지만 부팅 시 /usr 파티션을 fsck로 설정하려면 필수입니다. 이 후크가 없으면 /usr은 절대 fsck되지 않습니다.
usr 후크를 추가하십시오. 루트를 마운트한 후 /usr 파티션을 마운트합니다. 0.9.0 이전에는 /usr이 실제 루트 디렉터리의 /etc/fstab에 있으면 자동으로 마운트되었습니다.
따라서 올바른 후크를 사용하여 새 초기화 파일을 생성 해야 합니다 1 . 이는 HOOKS=""
의 줄을 변경하여 추가 됩니다 /etc/mkinitcpio.conf
. 그래서
Mint로 부팅하고 Manjaro
/
디렉터리를 마운트합니다.mkdir manjaro_root && sudo mount /dev/sda11 manjaro_root
이제 Manjaro의 루트 디렉토리가
~/manjaro_root
.즐겨 사용하는 편집기를 사용하여 파일을 편집합니다
mkinitcpio.conf
(nano
이것은 단지 예시일 뿐이므로 자세히 설명하지 않겠습니다).sudo nano ~/manjaro_root/etc/mkinitcpio.conf
라인을 찾아
HOOKS
관련 후크가 포함되어 있는지 확인하세요.HOOKS="shutdown usr fsck"
중요한" : 이미 존재하는 후크를 제거하지 마십시오. 거기에 위의 내용을 추가하기만 하면 됩니다. 예를 들어 최종 결과는 다음과 같습니다.
HOOKS="base udev autodetect sata filesystems shutdown usr fsck"
에서
/usr
passno를 0으로 표시합니다/etc/fstab
. 이렇게 하려면manjaro_root/etc/fstab
이/usr
줄을 열고 찾으세요. 이 예에서는 이라고 가정하겠습니다/dev/sda12
. 하지만 시스템에 있는 것을 사용하세요. "Pass" 번호는/etc/fstab
항목의 마지막 필드입니다. 따라서 선이 다음과 같은지 확인해야 합니다./dev/sda12 /usr ext4 rw,errors=remount-ro 0 0 ^ This is the important one -----|
새 초기화 이미지를 만듭니다. 이렇게 하려면
/usr
Manjaro의 디렉터리도 마운트해야 합니다.sudo mount /dev/sda12 ~/manjaro_root/usr
저는 Arch에 대한 경험이 많지 않으므로 필요하지 않을 수도 있습니다(아마도
mkinitcpio
없이 실행할 수 있음chroot
). 그러나 안전을 위해 환경을 설정하십시오chroot
.sudo mount --bind /dev ~/manjaro_root/dev && sudo mount --bind /dev/pts ~/manjaro_root/dev/pts && sudo mount --bind /proc ~/manjaro_root/proc && sudo mount --bind /sys ~/manjaro_root/sys && sudo chroot ~/manjaro_root
~/manjaro_root/
이제 실제로 는 chroot 환경에 있게 됩니다/
. 이제 새로운 초기화 이미지 생성을 진행할 수 있습니다.mkinitcpio -p linux
그만두다
chroot
exit
업데이트하세요
grub.cfg
(다시 말하지만 실제로는 필요하지 않을 수도 있음).sudo update-grub
이제 재부팅하고 Manjaro로 다시 부팅해 보십시오.
1mkinitcpio
"후크" 는 생성되는 초기화 이미지에 무엇을 추가해야 하는지 알려주는 작은 스크립트입니다 .
답변2
민트에서 할 수 있습니다루트 변경initramfs를 재생성하려면 Manjaro 설치로 이동하세요.
~/foo
선택한 디렉터리( ) 아래에 Manjaro 루트 디렉터리를 마운트합니다 . /usr
에 파티션을 마운트 ~/foo/usr
하고, 부팅이 별도인 경우 부팅도 마운트하세요. 마운트 프로세스 시스템 개발:
# mount -t proc proc ~/foo/proc/
# mount --rbind /sys ~/foo/sys/
# mount --rbind /dev ~/foo/dev/
루트를 변경합니다.chroot ~/foo /bin/bash
설명된 대로위키피디아: "후크는 이미지에 추가될 내용을 설명하는 작은 스크립트입니다." 편집을 통해 /etc/mkinitcpio.conf
Wiki 및 댓글에 표시된 대로 항목 에 usr
fsck
및 후크를 추가했습니다. initramfs 재생성: (에 기록됩니다 )shutdown
HOOK
mkinitcpio -p linux
/boot
chroot를 종료하고 proc, sys, dev 및 Manjaro 파티션을 마운트 해제한 후 재부팅을 시도합니다.
답변3
Linux Mint용 USB 부팅 장치를 만들고, 2개의 파티션에 모든 데이터를 백업하고, 두려운 sbin/init를 찾을 수 없다는 메시지를 받은 후 다양한 복구 시도를 시도하는 데 약 6시간을 낭비했습니다...
이 문제는 사소한 업데이트 후에 발생했습니다. 시스템이 재부팅되지 않았습니다. sbin 폴더 전체가 신비롭게 삭제되어 복구할 수 없는 것 같습니다. 내가 찾을 수 있는 유일한 의미 있는 조언은 "다시 설치"하는 것입니다.
수정사항(5분 미만!!)은 다음과 같습니다.
- 에서 시작하다원래라이브 설치 디스크(이 경우 Cinnamon Mint 17.1),
- 파일 탐색기를 루트로 엽니다(폴더를 마우스 오른쪽 버튼으로 클릭하고 "루트로 열기"를 선택하거나 터미널을 열고 "sudo nemo" 입력).
- 라이브 설치의 sbin 폴더를 찾으세요.
- 결함이 있는 Mint 파티션 마운트(아이콘 클릭)
- sbin 폴더에 적용된 권한을 변경합니다(마우스 오른쪽 버튼 클릭, 속성, 권한, 기타, 파일 액세스, 읽기 및 쓰기 - 그런 다음 "동봉된 파일에 권한 적용" 클릭).
- 전체 sbin 폴더를 설치 루트 디렉터리(/)에 복사합니다. (여기에는 시스템 "bin", "boot", "home", "usr" 등의 폴더가 위치합니다.)
- 재시작