Из другой ОС выполните chroot в свой дистрибутив
например, с компакт-диска manjaro live -, как описано здесь
, а затем выполните
mkinitcpio -p linuxXX
напр. для меня
mkinitcpio -p linux49
Вы можете узнать версию для использования, заглянув в/etc/mkinitcpio.d/
Затем перезагрузите
Вы правы в своем предположении о размере cpio, но обратите внимание, что cpio — это не один формат, а скорее четыре или даже более совершенно несовместимых формата с разными ограничениями.Вот почему формат cpio
объявлен стандартом устаревшим. Для каждого расширения формата cpio вам нужно будет создавать еще один несовместимый формат, поэтому cpio просто не готов к будущему.
Учитывая, что форматы cpio не заблокированы, крайне сложно и подвержено ошибкам -повторная синхронизация устройства чтения после ошибки чтения. Поэтому cpio не рекомендуется для архивирования. В любом случае, ваше утверждение об устранении ошибок с помощью cpio связано не с самим cpio, а с реализацией AT&T, поэтому остерегайтесь реализаций GNU... функция, на которую вы ссылаетесь, недокументирована, подобно тому факту, что Sun/AT&T cpio может быть используется для замены двоичных файлов запущенных программ, не вызывая проблем. Последнее — это то, что вы получаете с star -install
как задокументированную функцию.
TAR, с другой стороны, представляет собой формат, который (благодаря новому расширенному формату tar, стандартизированному в 2001 году POSIX на основе предложения Sun Microsystems от 1997 года ), может быть расширен без проблем несовместимости в будущем.
Если у вас есть ошибка чтения на ленте, сомнительно, что драйвер ядра все равно позволит вам прочитать эту проблему. Но я только что проверил Sun cpio, и кажется, что он внутренне переводит EIO в какой-то EOF, который не возвращает данные. Основная проблема здесь в том, что кажется, что Sun cpio не помнит о такой проблеме в своих верхних слоях.
Если вы хотите получить что-то похожее на то, что делает cpio, я рекомендую использовать что-то вроде:
sdd if=/dev/rmt/0 bs=126k -noerror try=0 | star -xp -i
Замените 126 КБ на размер блока вашей ленты и используйте правильный параметр if=.
Некоторые дополнительные примечания:
gtar
умеет делать резервные копии, но часто не может восстановить собственные архивы. Это происходит, например. когда вы используете инкрементные резервные копии gtar
с нетривиальными -различиями между двумя инкрементными копиями.
star
на opencsw не является последним.Я рекомендую собрать последнюю версию из пакета schilytools
по адресу :
http://sf.net/projects/schilytools/files/
Как правило, schilytools обновляются с типичной частотой один раз в две недели.
Текущая справочная страница для звездочки находится по адресу:
http://schilytools.sourceforge.net/man/man1/star.1.html
См. также