Алекс, делаем так: на HDD в отдельный раздел ставим любой другой линукс (можно какой-нить легковесный) с grub, затем в этот grub кладём указанные ядро и рамдиск. Если там не намудрили и не делали вообще явную защиту от таких ковыряний, то эта штука должна загрузиться и даже как-то найти свой HDD-раздел.
Как вариант, систему можно попробовать загрузить внешним загрузчиком с флешки или через PXE.
Как происходит загрузка Linux "на пальцах"?
1. В память грузится ядро и initrd.
2. В нужную область памяти помещаются параметры, включая адрес, где лежит initrd.
3. Вызывается стартовый код ядра, который уже делает всё остальное.
При этом неважно, где лежат ядро и initrd до загрузки. Поэтому необязательно использовать lilo, на самом деле.
Исторически приходилось даже ставить grub в mdraid с данными в формате 0.9, чтобы его можно было монтировать как отдельные разделы. Это позволяло grub найти свои файлы так, как будто raid нет, причём на любом из двух дисков. Во времена, когда он этого сам не умел.
Алекс, то есть всё же система в рамдиске? Тогда придётся её пересобирать, да. Но система, в которой устанавливали lilo, в таком случае может отличаться.
Например, можно было сделать /boot, в него положить ядро и ramdisk, настроить и установить lilo, а потом систему, из которой всё это делалось, полностью снести.
Но в целом если там не перемудрили, то можно взять ядро и ramdisk и загрузить их любым другим загрузчиком, в том числе grub.
Либо надо после переноса загрузиться с другого носителя и из chroot вызвать lilo, либо таки уже мигрировать на нормальный загрузчик. Если даже не grub, то можно хоть DOS загрузить и из него взвести систему с помощью loadlin (ему нужны будут ядро, initrd и правильные параметры), или через pxelinux...
initrd трогать не нужно! и вызывать lilo из другой системы тоже. Нужно lilo именно правильной формы от нужной системы. Вообще lilo сильно завязан на конкретный диск с его разметкой, там по сути статические адреса блоков прям в boot record пишутся. Поэтому-то в старых линуксах после пересборки ядра надо было переставлять lilo. Крутость grub как раз и была в своё время в том, что в нём есть stage2, который уже умеет работать с файловыми системами и находить файлы по именам (хотя там могут быть тоже проблемы, если файловая система побилась, даже если это легко восстанавливается по журналу при обычной загрузке).
Неужели другой загрузчик никак не поставить? В принципе, lilo и grub даже совместно можно исхитриться завести.
Геннадий Бут, ну может кривая библиотека. Если для сравнения руками дёрнуть sendMessage (это же RESTful-его-за-ногу простой протокол) и проблема не воспроизводится - то явно дело в библиотеке.
Antowa Kartowa, скорее всего, этот кусок добавлен скриптом, который делал что-то типа echo "aaa\nbbb", а нюанс в том, что в echo требует ключа -e, чтобы \-коды работали.
Antowa Kartowa, strace надо гонять с ключом -f, чтобы он дочерние процессы тоже изучал.
Но как пить дать это ~/.bash_profile, ~/.bashrc, ~/.profile, /etc/profile, /etc/bashrc или какие-то скрипты из них вызываемые... Причём в хоуме root искать.
Кстати, советую сравнить sudo -i и sudo -s. Если есть разница, то больше похоже что это в ...profile, чем в ...rc.
Есть много таких сервисов. sendpulse, mailchimp, sendsay итд итп. У них часто есть бесплатный тестовый период или бесплатный тариф, можно потестироваться перед полноценным использованием.
CityCat4, противодействовать взлому алгоритма, для которого есть опенсурсная реализация (unrar-free), довольно сложно :) Тем более что даже и так можно каждую проверку засовывать в своё изолированное окружение, где приложению просто негде будет "сохранить" что-либо.
lex bem, всё так, даже внутри LXC-контейнера докер может не завестись совсем или завестись только после шаманств с бубном. А openvz это древняя технология, в которой многое работает очень плохо по нынешним меркам.
Можно на самом деле попытаться бутнуться с другим ядром, в который вкомпилить всё необходимое, чтобы от модулей ядра не зависеть.