Восстановленный VG сместил объемы

Во-первых, системаd не является традиционным униксом init. Systemd намного больше, поэтому сравнивать их немного несправедливо.

Для ответа на вопрос, кажется, что необходимы некоторые двоичные файлы и следующие конфигурационные файлы:

/usr/lib/systemd/system/default.target
/usr/lib/systemd/system/basic.target
/usr/lib/systemd/system/sysinit.target
/usr/lib/systemd/system/getty.target
/usr/lib/systemd/system/getty@.service
/usr/lib/systemd/system/console-getty.service

выдача systemctl для включения консольного getty.service getty@tty2.service, затем создание этих симлинков:

/etc/systemd/system/default.target.wants/getty@tty2.service -> /lib/systemd/system/getty@service
/etc/systemd/system/getty.target.wants/console-getty.service -> /lib/systemd/system/console-getty.service

ПРИМЕЧАНИЕ: Чтобы использовать специальные возможности systemd для динамического запуска agetty, при нажатии Alt+F3 и т.д., кажется, что вы также должны иметь как минимум эти два файла:

/etc/systemd/logind.conf
/lib/systemd/system/autovt@.service

где autovt@. service является сим-ссылкой на getty@.service.

Содержимое файлов конфигурации:

Файлы default.target, getty.target, sysinit.target могут быть пустыми, за исключением тега [Unit] и (возможно) Description=xxx.

basic.target также содержит информацию о зависимостях:

[Unit]
Description=Basic System
Requires=sysinit.target
Wants=sockets.target timers.target paths.target slices.target
After=sysinit.target sockets.target timers.target paths.target slices.target

Я не уверен, нужны ли ссылки на цели, которые не существуют в виде файлов или нет. Они описаны на странице man systemd.special(7) man page.


console-getty.service: (Особый случай для agetty на консоли)

[Unit]
Description=Console Getty
After=systemd-user-sessions.service plymouth-quit-wait.service
Before=getty.target

[Service]
ExecStart=-/sbin/agetty --noclear --keep-baud console 115200,38400,9600 $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=cons
TTYPath=/dev/console
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

[Install]
WantedBy=getty.target

getty@.service: (общая конфигурация для всех сервисов getty, кроме console)

[Unit]
Description=Getty on %I
After=systemd-user-sessions.service plymouth-quit-wait.service
Before=getty.target
IgnoreOnIsolate=yes
ConditionPathExists=/dev/tty0

[Service]
ExecStart=-/sbin/agetty --noclear %I $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=no
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

[Install]
WantedBy=getty.target
DefaultInstance=tty1

Наконец, вам, вероятно, понадобится несколько этих специальных двоичных файлов (я не пробовал, какие из них решающие):

/lib/systemd/systemd (/sbin/init usually points to this)
/lib/systemd/systemd-logind
/lib/systemd/systemd-cgroups-agent
/lib/systemd/systemd-user-sessions
/lib/systemd/systemd-vconsole-setup
/lib/systemd/systemd-update-utmp
/lib/systemd/systemd-sleep
/lib/systemd/systemd-sysctl
/lib/systemd/systemd-initctl
/lib/systemd/systemd-reply-password
/lib/systemd/systemd-ac-power
/lib/systemd/systemd-activate
/lib/systemd/systemd-backlight
/lib/systemd/systemd-binfmt
/lib/systemd/systemd-bootchart
/lib/systemd/systemd-bus-proxyd
/lib/systemd/systemd-coredump
/lib/systemd/systemd-cryptsetup
/lib/systemd/systemd-fsck
/lib/systemd/systemd-hostnamed
/lib/systemd/systemd-journald
/lib/systemd/systemd-journal-gatewayd
/lib/systemd/systemd-journal-remote
/lib/systemd/systemd-localed
/lib/systemd/systemd-machined
/lib/systemd/systemd-modules-load
/lib/systemd/systemd-multi-seat-x
/lib/systemd/systemd-networkd
/lib/systemd/systemd-networkd-wait-online
/lib/systemd/systemd-quotacheck
/lib/systemd/systemd-random-seed
/lib/systemd/systemd-readahead
/lib/systemd/systemd-remount-fs
/lib/systemd/systemd-resolved
/lib/systemd/systemd-rfkill
/lib/systemd/systemd-shutdown
/lib/systemd/systemd-shutdownd
/lib/systemd/systemd-socket-proxyd
/lib/systemd/systemd-timedated
/lib/systemd/systemd-timesyncd
/lib/systemd/systemd-udevd
/lib/systemd/systemd-update-done

Чтобы подвести итог процессу запуска systemd, я думаю, что он работает примерно так:

  1. systemd находит basic.target (или все *. целевые файлы?)
  2. зависимости разрешаются на основе WantedBy=, Wants=, Before=, After=... директив в разделе [Install] конфигурационных файлов *.service и *.target. В
  3. *.service, которые должны запускаться (не являются "специальными" службами), имеется раздел [Service] с директивой ExecStart=, в котором указан исполняемый файл, который нужно запустить.

1
15.10.2013, 01:44
1 ответ
[1175177] Для любого, у кого есть похожая проблема:

Я использовал e2sl [1], чтобы найти кандидатов на файловые системы непосредственно с одного из RAID-устройств и смонтировать файловую систему, используя устройство замкнутого цикла [2], пропустив LVM и программный RAID. Мне пришлось немного поиграть со смещением (позиция суперблока имеет смещение в 1KB к началу раздела!), но в конце концов мне удалось это сделать.

Отсюда спасение было простым, как пирог: Монтаж loopdevice в точку монтирования и все было скопировано.

http://schumann.cx/e2sl/mount --loop & see losetup[1175186]

1
27.01.2020, 23:53

Теги

Похожие вопросы