Разделение не доступно?

Найдите модуль или драйвер, который Вы хотите изменить или запустить с пустого указателя / привет мировой тип модуля и сборки оттуда. Конкретно работа с модулем, потому что это позволит Вам загружаться, разгрузите, перекомпилируйте и перезагрузите код в рабочее ядро. Позже можно войти в базовые биты, но в основном модули имеют все виды, и можно сделать в значительной степени независимо от того, что Вам нравится.

Во-вторых, используйте VM. Установите гостевую машину под VirtualBox или некоторыми по VM и сделайте Ваше ядро, тестирующее там некоторое время. Тем путем Вы не уничтожите свою основную систему, когда Вы повредите что-то, и перезапуск, отслеживание в обратном порядке к рабочему снимку, и т.д. действительно легок.

В-третьих, учитесь git.

1
26.09.2011, 07:51
1 ответ

split стандартная утилита, включенная в coreutils пакет. Этот пакет имеет “требуемый” приоритет (и отмечен “важный”), таким образом, нормальная установка Debian имела бы его.

Я предполагаю, что Ваш сервер выполняет утилиты BusyBox. BusyBox является комплектом утилит, разработанных для систем с небольшим дисковым пространством или небольшой памятью. Многие его функции являются дополнительными, и нормальный пакет BusyBox Debian не включает split утилита (по-видимому, потому что это часто не используется).

Можно эмулировать некоторое использование split с head утилита и немного программирования оболочки. Вот быстрый и грязный сценарий для разделения входа на блоки фиксированного размера:

#!/bin/sh
i=1000000001          # Below we'll strip away the leading 1; this is
                      # a trick to have leading zeroes in the file names.
prefix=$1             # The files will be called ${prefix}000000001, etc.
chunk_size=$2         # in bytes, or 42k or 42m for kB and MB respectively
while
  head -q -c "$chunk_size" >"$prefix${i#1}"
  [ -s "$prefix${i#1}" ]   # Stop when we make an empty chunk.
do
  i=$((i+1))
done
rm "$prefix${i#1}"         # Remove the last, zero-sized chunk.

Сохраните тот сценарий как simple_split. Пример использования:

tar -cf - /big/dir | simple_split foo.tar- 1m

Эта команда создает 1MB-размерные названные файлы foo.tar-000000001, foo.tar-000000002, и т.д. Можно собрать их с cat; обратите внимание, что благодаря формату фиксированной ширины чисел, файлы заказаны в лексическом порядке их имен.

cat foo.tar-????????? | tar -tf -
5
27.01.2020, 23:17
  • 1
    Привет Giles. Большое спасибо за Ваш ответ - это разрешает много вопросов. Как я использовал бы Ваш предложенный отрывок? Поместите его в сценарий оболочки и назовите его как, я назвал бы разделение? Т.е. tar .... | mysplit ? Тест –  Industrial 26.09.2011, 00:11
  • 2
    @Industrial он (я ввел это непосредственно в моем браузере), адаптируйте его немного, и затем да, подайте его вход на его стандартном входе. –  Gilles 'SO- stop being evil' 26.09.2011, 00:14
  • 3
    Привет Giles. Терпите меня,-I совсем не хорош в этом. Я поместил отрывок как файл в /bin и попробованный tar передачи по каналу к нему, но он создает два файла, один нулевой байт и один файл, содержащий список файлов в tarball, который остается первоначальный размер. –  Industrial 26.09.2011, 12:48
  • 4
    @Industrial я обновил свой сценарий немного и добавил пример использования. –  Gilles 'SO- stop being evil' 04.10.2011, 01:40
  • 5
    Немного? Это фантастически!:) Большое спасибо Giles –  Industrial 04.10.2011, 10:48

Теги

Похожие вопросы