Это - попытка подвести итог от сессии поиска и устранения неисправностей чата.
Установка оказывается физическим диском-> mdraid raid1-> LVM. Таким образом, существует несколько слоев для работы через. Старая установка была (из-за неудачных предшествующих усилий по восстановлению) не доступна.
Однако NAS gui использовался для создания другого объема на другом диске, и к счастью GUI создал новый объем точно тот же путь. Таким образом, было возможно обнаружить установку от нового диска:
mdadm -E new-disk
если смещение к запуску данных, под mdraid слоем (2 048 секторов).dmsetup table
если блок запуска логического тома (относительно запуска физического тома) (1 152 сектора)dd
и xxd
, мы проверили, что магическое число присутствует при том смещении на диске, из которого мы пытаемся восстановить данные.Вооруженный сектором запуска ext4 файловой системы, можно использовать циклическое устройство только для чтения для восстановления данных:
# losetup /dev/loop0 -o $((512*(1152+2048))) -r /dev/sda1
# mount -text4 -o ro /dev/loop0 /mnt
И затем скопируйте его прочь.
systemd's shutdown -F
эквивалентный systemctl poweroff
. Я не выяснил отношение с fsck. Однако AFAIK, Вы не можете вызвать fsck, использующий systemd, потому что fsck выполняется, прежде чем systemd запускается.
Когда я хочу принудительно запустить fsck, я просто использую следующую команду:
# tune2fs -C 50 /dev/sda2
Она просто устанавливает счетчик монтирования на 50, но я также установил:
# tune2fs -l
...
Mount count: 18
Maximum mount count: 20
Итак, как вы можете видеть, когда я установил 50 в mount подсчитать, ядро считает, что следует проверить раздел.
Это решение работает всегда, независимо от того, что вы используете sysvinit / systemd или что-то еще.