Хорошо, если кто-то хочет играть в бога и творить чудеса, я не в себе.
Итак, мне было поручено создать сценарий, который бы находил файлы старше 6 месяцев, архивировал их, а затем удалял. На моем пути в создании сценария tihs я запустил это:
find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla
И это дало КАЖДОМУ ОДНОМУ ФАЙЛУ расширение .gz. Теперь я отменил это, как только заметил, но было уже слишком поздно. После завершения команды ни одна из моих команд bash не будет работать, потому что переменная $ PATH очищается сама. Я перепробовал много вещей, прежде чем понял, в чем проблема.
Итак, после распаковки всего, что я до сих пор не могу загрузить. Мне удалось сделать это для спасения, после чего я следовал онлайн инструкциям для:
root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]
После того, как мой Linux частично загружается, но выдает следующие ошибки:
Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or directory
Target filesystem doesn't have requrested /sbin/init.
No init found. Try passing init= bootarg.
Я попытался восстановить файловую систему, я загрузился с 3-х разных LiveCD / Rescue-дисков, я выполнил загрузочное восстановление с 2-х разных дисков. Я заставил fscks ...
У меня действительно нет идей, и мне нужно, чтобы этот сервер хотя бы загрузился, чтобы я мог восстановить свои базы данных SQL. Я отчаянно нуждаюсь в помощи, я даже заплачу, если понадобится.
Я целыми днями прячу форумы в течение 3 дней, чтобы найти возможное решение, и я все еще в том же положении ... Помогите, пожалуйста?
because of version differences,
переустановите с точно такой же версией.we have corruption issues,
Ваши данные могут быть повреждены. Восстановление системы, чтобы она была загрузочной, не поможет вам, если данные были удалены. Если ваша команда gzip сжала файлы базы данных, пока база данных использовалась поврежденной, это неизбежно.Ответы:
Это будет зависеть от того, достаточно ли восстановлены файловые системы, чтобы вы могли смонтировать эти разделы с LiveCD. Пока не пытайтесь загрузить систему. Сначала смонтируйте разделы и разархивируйте все файлы .gz. Это даст вам рабочие копии файлов init и системы. Затем вы можете использовать grub для восстановления загрузочного сектора. Затем загрузитесь в однопользовательском режиме и снова откройте файловую систему fsck. Если это работает, у вас будет работающая система. У вас также будет куча разархивированных файлов (например, man-страниц), которые действительно должны быть заархивированы, но это лучше, чем система, которая не загружается.
Если вы не можете смонтировать разделы с LiveCD, вам, к сожалению, не повезло. Ничто не восстановит вашу систему в этот момент.
источник
Первым делом я попробую запустить среду LiveCD и просто разархивировать все, надеясь, что система вернется в загрузочное состояние. Примечание: я был бы обеспокоен потенциальным повреждением данных, если исходный процесс gzip был прерван.
В противном случае я бы попытался перенести БД в новую систему, как предлагали другие, но, как вы уже столкнулись, могут возникнуть трудоемкие проблемы с зависимостями и конфигурацией, которые необходимо будет решать индивидуально.
источник
Общее мнение, что вам следует просто смонтировать диск в работающей системе и спасти ваши файлы, не является неправильным. Это разумная вещь, чтобы сделать. Но другой способ более веселый и очень познавательный. Я многому научился, борясь с выходом из беспорядочных ситуаций, когда другие люди просто сдавались и переустанавливали с нуля. (Не на сервере, от которого зависят другие люди ...)
Во всяком случае, пока у вас есть initramfs (initrd), который работает. Это хорошее начало. Но он не может завершить передачу обслуживания init, потому что init сейчас
init.gz
может быть? Чтобы добиться какого-либо прогресса, было бы полезно точно знать, какой дистрибутив Linux у вас есть, поэтому мы можем посмотреть, какие инструменты доступны в его initramfs для экстренного использования.Представленные вами сообщения об ошибках выглядят так, будто они могли быть получены из initramfs Debian. Если это Debian, то вы должны были получить
(initramfs)
приглашение оболочки на следующей строке после последней ошибки. Если вы сделали, вы должны посмотреть, что происходит с этими неудачными креплениями. это не/root/dev
хватает? (/root
где ваш обычный root fs должен быть смонтирован во время работы initramfs)Если вы не получили подсказку оболочки, то что
No init found. Try passing init= bootarg.
будет после, будет интересно. Даже если это был всего лишь мигающий курсор, это подсказка. Если он кажется полностью замороженным, попробуйте получить некоторую информацию о том, какие процессы все еще существуют, используя magic sysrq или Ctrl + ScrollLock.Initramfs Debian также позволяет запрашивать оболочку с несколькими специальными ориентирами, добавляя
break=
параметр в командную строку ядра. Например, чтобы получить оболочку передRunning /scripts/init-bottom
строкой, используйтеbreak=bottom
.Кроме того: я не знаю, как
find
команда могла сжать каждый файл ... мне кажется правильным для выбора файлов в возрасте от 180 до 400 дней.источник
break=bottom
?) ... да, к тому времени он пытается установить/root/dev
и/root/proc
и/root/sys
,/root
должна быть реальной корневой файловой системой. Должно быть, раньше было сообщение об ошибке, не удалось смонтировать его. Вы включилиroot=
параметр в командную строку ядра? Моя память немного нечеткая в этом вопросе, но я думаю, чтоroot (hd0,0)
просто говорит grub, где найти его файлы поддержки, и вам все равно нужно отдельно сообщить ядру, где находится корень.(initramfs)
подсказки, что-то вродеmount -r /dev/sda1 /root
?cat /proc/partitions
чтобы увидеть, какие диски доступны.