Есть вот такая строчка в скрипте, собственно создает cpio архив для модификации initrd:
find /opt/initrd/modify/ | cpio -H newc -o > /opt/initrd/initrd.cpioВопрос собственно в том, что пути в этом архиве оказываются абсолютными, например /opt/initrd/modify/bin/sh. А должно быть /bin/sh, мануал по cpio до дырок зачитал и все равно въехать не могу
(
Read more... )
Comments 16
Так что ваше решение вполне логично, чего ж в нём некрасивого?
Альтернативный вариант - использовать опцию --no-absolute-filenames при разворачивании архива, но она всего лишь отрежет ведущий /, и развернёт файлы с именами opt/initrd/modify/* в текущую директорию.
Reply
Reply
Вы что ли собираете вручную initrd'шный образ из кусков, лежащих в разных местах?
Reply
Reply
Reply
Reply
Сначала
cd /opt/initrd/modify/
когда нужно вернуться
cd -
что фактически выполнит
cd $OLDPWD
Кроме того, если вы хотите восстанавливать текущую директорию, чтобы не изменился $PWD в пользовательском шелле, из которого был вызван скрипт, то этого вообще делать не нужно, скрипт на текущую директорию вызвавшего его шелла влияния не имеет.
Reply
Reply
Впрочем, посмотрите исходники buildroot, может поможет.
Reply
Leave a comment