설치가 자동으로 실패합니다. 디버깅하고 수정하는 방법은 무엇입니까?

설치가 자동으로 실패합니다. 디버깅하고 수정하는 방법은 무엇입니까?

/dev/md1ext2가 있는 (n MD) 장치가 있습니다 /boot. 그러나 /boot해당 장치가 속한 위치에 마운트할 수 없습니다.

# mount | grep boot
Exit 1
# mount | grep md1
Exit 1

# fsck /dev/md1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/md1: clean, 362/40960 files, 121097/163696 blocks

# mount -v /dev/md1 /boot
mount: /dev/md1 mounted on /boot.
# ll /boot/
total 0
# umount -v /boot
umount: /boot: not mounted
# umount /dev/md1
umount: /dev/md1: not mounted

다른 곳에 장치를 설치하면 다음을 수행할 수 있습니다.

# ll /mnt/tmp/ | wc 
      1       2       8
# mount -v /dev/md1 /mnt/tmp
mount: /dev/md1 mounted on /mnt/tmp.
# ll /mnt/tmp/ | wc 
     35     308    2811
# umount /mnt/tmp
umount: /mnt/tmp (/dev/md1) unmounted
umount: /mnt/tmp: not mounted
Exit 32

무엇이 문제일까요?

보시고 업데이트하세요이 비슷한 질문: 무언가가 파티션을 즉시 마운트 해제하고 있습니다.

# mount -v /dev/md1 /boot ; ll /boot/ | wc; sleep 0.1; ll /boot/| wc 
mount: /dev/md1 mounted on /boot.
     35     308    2811
      1       2       8

systemd백그라운드에서 제거될 수 있습니다. 나는 아직도 무엇을 해야할지 모르겠습니다. systemctl daemon-reload도움이 안돼. 문자열 또는 을 systemctl status포함하지 않습니다 ./bootmount

업데이트 2:

# systemctl list-unit-files -t mount
UNIT FILE                     STATE   
dev-hugepages.mount           static  
dev-mqueue.mount              static  
proc-fs-nfsd.mount            static  
proc-sys-fs-binfmt_misc.mount static  
sys-fs-fuse-connections.mount static  
sys-kernel-config.mount       static  
sys-kernel-debug.mount        static  
tmp.mount                     disabled
var-lib-nfs-rpc_pipefs.mount  static  

9 unit files listed.

따라서 여기에 대해서는 아무것도 없습니다 boot. 그러나 (나에게는 지금까지) 숨겨진 유닛이 있습니다 boot.mount.

# journalctl -u boot.mount | filter-lines-by-hand
Jan 12 09:57:46 server systemd[1]: Unit boot.mount is bound to inactive unit dev-md-1.device. Stopping, too.
Jan 12 09:57:46 server systemd[1]: Unmounting /boot...
Jan 12 09:57:46 server umount[3069]: umount: /boot: target is busy.
Jan 12 09:57:46 server umount[3069]: (In some cases useful info about processes that use
Jan 12 09:57:46 server umount[3069]: the device is found by lsof(8) or fuser(1))
Jan 12 09:57:46 server systemd[1]: boot.mount mount process exited, code=exited status=32
Jan 12 09:57:46 server systemd[1]: Failed unmounting /boot.
Jan 12 09:57:46 server systemd[1]: Unit boot.mount is bound to inactive unit dev-md-1.device. Stopping, too.
Jan 12 09:57:46 server systemd[1]: Unmounting /boot...
Jan 12 09:57:46 server umount[3071]: umount: /boot: target is busy.
Jan 12 09:57:46 server umount[3071]: (In some cases useful info about processes that use
Jan 12 09:57:46 server umount[3071]: the device is found by lsof(8) or fuser(1))
Jan 12 09:57:46 server systemd[1]: boot.mount mount process exited, code=exited status=32
Jan 12 09:57:46 server systemd[1]: Failed unmounting /boot.
Jan 12 09:57:46 server systemd[1]: Unit boot.mount is bound to inactive unit dev-md-1.device. Stopping, too.
Jan 12 09:57:46 server systemd[1]: Unmounting /boot...
Jan 12 09:57:46 server umount[3073]: umount: /boot: target is busy.
Jan 12 09:57:46 server umount[3073]: (In some cases useful info about processes that use
Jan 12 09:57:46 server umount[3073]: the device is found by lsof(8) or fuser(1))
Jan 12 09:57:46 server systemd[1]: boot.mount mount process exited, code=exited status=32
Jan 12 09:57:46 server systemd[1]: Failed unmounting /boot.
Jan 12 09:57:46 server systemd[1]: Unit boot.mount is bound to inactive unit dev-md-1.device. Stopping, too.
Jan 12 09:57:46 server systemd[1]: Unmounting /boot...
Jan 12 09:57:46 server systemd[1]: Unmounted /boot.
Jan 12 09:57:46 server systemd[1]: Unit boot.mount entered failed state.

그렇습니다. 조용하고 성가시게 systemd/boot파티션을 마운트 해제하고 있습니다. systemd업데이트가 설치되지 않은 상태에서 어떻게 작동하는지 "생각"하는지 궁금합니다 .

부활시킬 수 있나요?

# systemctl restart boot.mount
Authorization not available. Check if polkit service is running or see debug message for more information.
(approx. 2 minute wait)
A dependency job for boot.mount failed. See 'journalctl -xe' for details.
Exit 1

# journalctl -u boot.mount | tail -2
Jan 12 10:07:26 server systemd[1]: Dependency failed for /boot.
Jan 12 10:07:26 server systemd[1]: Job boot.mount/start failed with result 'dependency'.

정말 journalctl -xe그런 소식이 있더라구요

Unit dev-md-1.device has failed.

그렇다면 남은 유일한 질문은 systemdmd1이 실제로 좋은 일을 하고 있는지 어떻게 알 수 있느냐는 것입니다. 이것은 서버이므로 재부팅하고 싶지 않습니다.

업데이트 3:

md1 장치가 실제로 꽤 좋다고 systemd에게 말해 보십시오.

# systemctl reset-failed dev-md-1.device
Authorization not available. Check if polkit service is running or see debug message for more information.
# systemctl reset-failed \*
Authorization not available. Check if polkit service is running or see debug message for more information.
# mount -v /dev/md1 /boot ; ll /boot/ | wc ; sleep 0.1 ; ll /boot/ | wc
mount: /dev/md1 mounted on /boot.
     35     308    2811
      1       2       8

실패했습니다. 또 실패했습니다.

# systemctl start dev-md-1.device
Authorization not available. Check if polkit service is running or see debug message for more information.
(approx. 2 minute wait)
Job for dev-md-1.device timed out.
Exit 1
# journalctl -u boot.mount | tail -4
Jan 12 15:19:19 server systemd[1]: Unit boot.mount is bound to inactive unit dev-md-1.device. Stopping, too.
Jan 12 15:19:19 server systemd[1]: Unmounting /boot...
Jan 12 15:19:19 server systemd[1]: Unmounted /boot.
Jan 12 15:19:19 server systemd[1]: Unit boot.mount entered failed state.

해결책:

# mount /dev/md1 /boot ; cd /boot ; nohup sleep 99000h < /dev/null > & /dev/null &

/boot그러면 장치가 사용 중이기 때문에 마운트 해제할 수 없도록 CWD로 프로세스가 시작됩니다 systemd. /boot그러나 systemd1분마다 18000줄 이상의 오류 메시지가 로그에 생성됩니다.

# journalctl -u boot.mount | fgrep 15:28: | awk '{ print $6 " " $7 " " $8 " " $9 " " $10 " " $11 " " $12 " " $13 " " $14 }' | sort | uniq --count
   1054 boot.mount mount process exited, code=exited status=32   
   4502 Failed unmounting /boot.      
   1792 (In some cases useful info about processes that use
   3279 the device is found by lsof(8) or fuser(1)) 
   5277 umount: /boot: target is busy.    
   1053 Unit boot.mount is bound to inactive unit dev-md-1.device. Stopping,
   1053 Unmounting /boot...       

단 1분 만에 동일한 행의 개수입니다!

답변1

이 문제를 해결하려면:

  1. 시스템에 있는 "mount" 유형의 모든 유닛 파일을 나열합니다.

    systemctl 목록 단위 파일 -t 마운트

  2. "boot.mount"와 같은 것을 찾으십시오.

  3. 저널에서 조직을 모니터링하세요

    Journalctl -u boot.mount -f

  4. 파일 시스템을 마운트해 보세요

관련 정보