단일 사용자 모드로 부팅하지 않을 때 잘못된 서비스 시작 순서

단일 사용자 모드로 부팅하지 않을 때 잘못된 서비스 시작 순서

Linux에서 sysvinit와 ZFS를 실행하는 Debian Wheezy 시스템에 대해 질문하고 있습니다. 내 문제는 ZFS에서 발생하지만 근본적인 문제는 ZFS에만 국한된 것이 아니라고 강력히 의심합니다.

어떤 이유로 시스템을 정상적으로 부팅하면 zfs-import실행됩니다.앞으로 cryptdisks-early시스템 시작 중. LUKS 장치에 ZFS 풀이 있고 LUKS 장치가 아직 해독되지 않았기 때문에 이를 가져올 수 없기 때문에 문제가 됩니다. 파일 시스템의 콘텐츠를 예상하기 때문에 다른 많은 작업이 실패하게 됩니다. 사용할 수 있지만 그렇지 않습니다.

single그러나 단일 사용자 모드로 부팅하면(커널 명령줄에 추가하여) 원하는 대로 작동하는 것 같습니다 cryptdisks-early.zfs-import

최근에 이런 일이 언제 있었는지 기억이 나지 않습니다.아니요이는 사실이지만 정상적인 시작 시 서비스가 올바른 순서로 자동 시작되지 않는다고 보장할 수 없습니다. 나는 모든 것이 꽤 큰 ZoL 업그레이드에서 시작되었다고 생각합니다. 기본적으로 /etc/insserv.conf.d와 같은 이전 구성과 비교하여 약간의 조정을 촉발하는 완전히 새로운 초기화 스크립트입니다. init 스크립트 자체는 괜찮습니다. 단지 시작 순서에 문제가 있는 것뿐입니다.

/etc/rc?.d를 탐색하면서 /etc/rcS.d에서 다른 많은 내용을 발견했습니다.

  • S10cryptdisks-early
  • S11zfs-import
  • S12cryptdisks

순진하게 말하면 모든 것이 올바른 순서로 시작되어야 하는 것처럼 보이지만 항상 그런 것은 아닙니다.

/etc/insserv.conf.d/zfs-mountinclude $local_fs +zfs, 이는 예상된 것입니다(ZFS 파일 시스템 마운트는 제공 사항의 일부입니다 local_fs). ZFS에서 가져오기와 마운트는 두 가지 다른 작업이며, 마운트 전에 가져오기가 발생합니다. (파일 시스템을 마운트하지 않고 ZFS 풀을 가져올 수 있지만 파일 시스템이 저장된 풀을 가져오지 않으면 ZFS 파일 시스템을 마운트할 수 없습니다. 일반적으로 내 시스템에서는 ZFS 파일 시스템이 자동으로 마운트됩니다. (풀이 수입됩니다).

시스템의 진정한 클린 부팅을 보장하기 위한 해결 방법으로 do_start를 진행하기 전에 수동으로 시작 /etc/init.d/zfs-import하도록 편집했습니다 cryptdisks-early. 그러나 나는 일부 구성 설정을 수정하여 동일한 목표를 달성하고 싶습니다(가능한지 의심스럽습니다).

zfs-import및 의 상대적 순서에 대한 구체적인 정보를 찾을 수 없는 것 같지만 cryptdisks-early아마도 거기에서 분명한 것을 간과하고 있는 것 같습니다.

시스템을 확인하고 싶습니다.꾸준히시작(시작될 때까지 기다립니다. 시간이 걸릴 수 있음)cryptdisks-early 앞으로시작하려고 합니다 zfs-import. 시스템 구성 파일을 어떻게 변경해야 합니까?

/etc/init.d/.depend.start관련된 내용은 나열되어 있지 않지만 /etc/init.d/.depend.boot다음 발췌문에 표시된 것처럼 ZFS 및 암호화 디스크가 언급되어 있습니다.

cryptdisks: checkroot.sh cryptdisks-early udev mdadm-raid
cryptdisks-early: checkroot.sh udev mdadm-raid
zfs-mount: mountall.sh mountall-bootclean.sh cryptdisks cryptdisks-early zfs-import
zfs-import: mtab.sh

따라서 올바르게 읽으면 zfs-mount는 zfs-import 및 cryptdisks에 의존하지만 zfs-import 자체는 cryptdisks에 의존하지 않으므로 init는 zfs-import를 자유롭게 시작할 수 있습니다.앞으로cryptdisks 또는 심지어 cryptdisks-early. 이것은 실제로 실제로 발생하는 동작이지만 /etc/rcS.d 아래의 파일 이름이 나타내는 동작은 아닙니다.

필요한 경우 더 많은 정보를 제공해 드리겠습니다. 관련성이 있는 정보를 알려주시기 바랍니다.

관련 정보