LINUX.ORG.RU

История изменений

Исправление manul91, (текущая версия) :

В итоге:

Проапгрейдил до forky. Там из коробки та же самая ситуация.

Начал разбираться.

Оказалось что появились какие-то template-юниты mdadm-last-resort@.service и mdadm-last-resort@.timer, для исправления этого безобразия :)

Однако по дефолту они не инсталированы, существуют только в usr

/usr/lib/systemd/system/mdadm-last-resort@.service

Короче, понадобилось сделать вот что

mkdir -p /etc/systemd/system/mdadm-last-resort@.service.d/
nano /etc/systemd/system/mdadm-last-resort@.service.d/override.conf

(чтобы вставить drop-in

[Install]

WantedBy=multi-user.target

) В итоге имеем

root@debian-test:~# systemctl daemon-reload 
root@debian-test:~# systemctl cat mdadm-last-resort@.service
# /usr/lib/systemd/system/mdadm-last-resort@.service
[Unit]
Description=Activate md array %I even though degraded
DefaultDependencies=no
ConditionPathExists=!/sys/devices/virtual/block/%i/md/sync_action
Documentation=man:mdadm(8)

[Service]
Type=oneshot
ExecStart=/usr/sbin/mdadm --run /dev/%i

# /etc/systemd/system/mdadm-last-resort@.service.d/override.conf
[Install]
WantedBy=multi-user.target

root@debian-test:~#

Делаем тоже самое (инсталируем template сервис) и для таймера

mkdir -p /etc/systemd/system/mdadm-last-resort@.timer.d/
nano /etc/systemd/system/mdadm-last-resort@.timer.d/override.conf
.....

Далее включаем конкретные юниты для всех рейдов поотдельно (md0, md1, md2… ; вроде бы для / лишнее, но лучше перебдеть):

root@debian-test:~# systemctl enable mdadm-last-resort@md2.service
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.service' → '/usr/lib/systemd/system/mdadm-last-resort@.service'.
...

И то же самое для таймеров:

root@debian-test:~# systemctl enable mdadm-last-resort@md2.timer
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.timer' → '/usr/lib/systemd/system/mdadm-last-resort@.timer'.
....

После daemon-reload и ребут: теперь все работает, в emergency mode не выкидывает.

P.S. Возможно это и в trixie надо было так, теперь не узнать без переинсталляции.

Исправление manul91, :

В итоге:

Проапгрейдил до forky. Там из коробки та же самая ситуация.

Начал разбираться.

Оказалось что появились какие-то template-юниты mdadm-last-resort@.service и mdadm-last-resort@.timer

Однако по дефолту они не инсталированы, существуют только в usr

/usr/lib/systemd/system/mdadm-last-resort@.service

Короче, понадобилось сделать вот что

mkdir -p /etc/systemd/system/mdadm-last-resort@.service.d/
nano /etc/systemd/system/mdadm-last-resort@.service.d/override.conf

(чтобы вставить drop-in

[Install]

WantedBy=multi-user.target

) В итоге имеем

root@debian-test:~# systemctl daemon-reload 
root@debian-test:~# systemctl cat mdadm-last-resort@.service
# /usr/lib/systemd/system/mdadm-last-resort@.service
[Unit]
Description=Activate md array %I even though degraded
DefaultDependencies=no
ConditionPathExists=!/sys/devices/virtual/block/%i/md/sync_action
Documentation=man:mdadm(8)

[Service]
Type=oneshot
ExecStart=/usr/sbin/mdadm --run /dev/%i

# /etc/systemd/system/mdadm-last-resort@.service.d/override.conf
[Install]
WantedBy=multi-user.target

root@debian-test:~#

Делаем тоже самое (инсталируем template сервис) и для таймера

mkdir -p /etc/systemd/system/mdadm-last-resort@.timer.d/
nano /etc/systemd/system/mdadm-last-resort@.timer.d/override.conf
.....

Далее включаем конкретные юниты для всех рейдов поотдельно (md0, md1, md2… ; вроде бы для / лишнее, но лучше перебдеть):

root@debian-test:~# systemctl enable mdadm-last-resort@md2.service
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.service' → '/usr/lib/systemd/system/mdadm-last-resort@.service'.
...

И то же самое для таймеров:

root@debian-test:~# systemctl enable mdadm-last-resort@md2.timer
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.timer' → '/usr/lib/systemd/system/mdadm-last-resort@.timer'.
....

После daemon-reload и ребут: теперь все работает, в emergency mode не выкидывает.

P.S. Возможно это и в trixie надо было так, теперь не узнать без переинсталляции.

Исправление manul91, :

В итоге:

Проапгрейдил до forky. Там из коробки та же самая ситуация.

Начал разбираться.

Оказалось что появились какие-то template-юниты mdadm-last-resort@.service и mdadm-last-resort@.timer

Однако по дефолту они не инсталированы, существуют только в usr

/usr/lib/systemd/system/mdadm-last-resort@.service

Короче, понадобилось сделать вот что

mkdir -p /etc/systemd/system/mdadm-last-resort@.service.d/
nano /etc/systemd/system/mdadm-last-resort@.service.d/override.conf

(чтобы вставить drop-in

[Install]

WantedBy=multi-user.target

) В итоге имеем

root@debian-test:~# systemctl daemon-reload 
root@debian-test:~# systemctl cat mdadm-last-resort@.service
# /usr/lib/systemd/system/mdadm-last-resort@.service
[Unit]
Description=Activate md array %I even though degraded
DefaultDependencies=no
ConditionPathExists=!/sys/devices/virtual/block/%i/md/sync_action
Documentation=man:mdadm(8)

[Service]
Type=oneshot
ExecStart=/usr/sbin/mdadm --run /dev/%i

# /etc/systemd/system/mdadm-last-resort@.service.d/override.conf
[Install]
WantedBy=multi-user.target

root@debian-test:~#

Делаем тоже самое (инсталируем template сервис) и для таймера

mkdir -p /etc/systemd/system/mdadm-last-resort@.timer.d/
nano /etc/systemd/system/mdadm-last-resort@.timer.d/override.conf
.....

Далее включаем конкретные юниты для всех рейдов поотдельно (md0, md1, md2… ):

root@debian-test:~# systemctl enable mdadm-last-resort@md2.service
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.service' → '/usr/lib/systemd/system/mdadm-last-resort@.service'.
...

И то же самое для таймеров:

root@debian-test:~# systemctl enable mdadm-last-resort@md2.timer
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.timer' → '/usr/lib/systemd/system/mdadm-last-resort@.timer'.
....

После daemon-reload и ребут: теперь все работает, в emergency mode не выкидывает.

P.S. Возможно это и в trixie надо было так, теперь не узнать без переинсталляции.

Исходная версия manul91, :

В итоге:

Проапгрейдил до forky. Там из коробки та же самая ситуация.

Начал разбираться.

Оказалось что появились какие-то template-юниты mdadm-last-resort@.service и mdadm-last-resort@.timer

Однако по дефолту они не инсталированы, существуют только в usr

/usr/lib/systemd/system/mdadm-last-resort@.service

Короче, понадобилось сделать вот что

mkdir -p /etc/systemd/system/mdadm-last-resort@.service.d/
nano /etc/systemd/system/mdadm-last-resort@.service.d/override.conf

(чтобы вставить drop-in

[Install]

WantedBy=multi-user.target

) В итоге имеем

root@debian-test:~# systemctl daemon-reload 
root@debian-test:~# systemctl cat mdadm-last-resort@.service
# /usr/lib/systemd/system/mdadm-last-resort@.service
[Unit]
Description=Activate md array %I even though degraded
DefaultDependencies=no
ConditionPathExists=!/sys/devices/virtual/block/%i/md/sync_action
Documentation=man:mdadm(8)

[Service]
Type=oneshot
ExecStart=/usr/sbin/mdadm --run /dev/%i

# /etc/systemd/system/mdadm-last-resort@.service.d/override.conf
[Install]
WantedBy=multi-user.target

root@debian-test:~#

Делаем тоже самое (инсталируем template сервис) и для таймера

mkdir -p /etc/systemd/system/mdadm-last-resort@.timer.d/
nano /etc/systemd/system/mdadm-last-resort@.timer.d/override.conf
.....

Далее включаем конкретные юниты для всех рейдов поотдельно (md0, md1, md2… ):

root@debian-test:~# systemctl enable mdadm-last-resort@md2.service
Created symlink '/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.service' → '/usr/lib/systemd/system/mdadm-last-resort@.service'.
...

И то же самое для таймеров:

root@debian-test:~# systemctl enable mdadm-last-resort@md2.timer Created symlink ‘/etc/systemd/system/multi-user.target.wants/mdadm-last-resort@md2.timer’ → ‘/usr/lib/systemd/system/mdadm-last-resort@.timer’. ….

После daemon-reload и ребут: теперь все работает, в emergency mode не выкидывает.

P.S. Возможно это и в trixie надо было так, теперь не узнать без переинсталляции.