Как использовать casper-rw файл для персистентности

С zsh:

print -r -- "${(e)$(<reports/my_report.sql)}"

С любой подобной Границе оболочкой (включая zsh):

eval "cat << EOF
$(cat reports/my_report.sql)
EOF"

Оба расширятся весь `...`, $(...), $((...)), $[...], $xxx и ${xxx}. Таким образом, необходимо будет выйти из доллара и символов обратной галочки, Вы не хотите расширенный.

Кроме того, для второго, содержание файла не должно содержать строку, состоящую из этих трех символов EOF (который для SQL не должна быть проблема).

С другой стороны, Вы могли сделать:

perl -pe 's/\${(\w+)}/$ENV{$1}/g' reports/my_report.sql

Вы должны будете export переменные, для perl знать о них.

Относительно того, почему Ваше решение не работает и далеко не работает, можно выполнить его после set -x для наблюдения, что продолжается:

$ echo "SELECT ${sql_year} AS year" | sed -e "s/\(\${[a-zA-Z_]*}\)/`eval "echo '\1'"`/"
+ echo 'SELECT 2013 AS year'
++ eval 'echo '\''\1'\'''
+++ echo '\1'
+ sed -e 's/\(${[a-zA-Z_]*}\)/\1/'
SELECT 2013 AS year

При помощи двойных кавычек оболочка разворачивает переменные и замену команды перед вызовом echo и sed. Так, Вы на самом деле работали:

echo 'SELECT 2013 AS year' | sed -e 's/\(${[a-zA-Z_]*}\)/\1/'

sed не может выполнить код. Таким образом, даже если Вы использовали одинарные кавычки, sed не расширился бы `...`.

3
16.09.2018, 04:41
2 ответа

Файлы ISO не могут быть смонтированы, а затем записаны. ISO 9660 - файловая система только для чтения.

Таким образом, вам нужно разместить файл casper-rw (это единственный файл с файловой системой внутри) в месте, которое физически находится на USB-накопителе.

Создание файловой системы с возможностью записи

Веб-сайт Pendrive Linux показывает некоторые подробности о том, как создать файловую систему casper-rw . Статья называется: Создайте в Linux файл цикла casper-rw большего размера . ПРИМЕЧАНИЕ: Файловая система casper-rw - это просто обычная файловая система, спрятанная внутри одного файла. В этом примере они используют внутри файловую систему EXT3.

Пример

  1. Создание образа "casper-rw"

     $ dd if = / dev / zero of = casper-rw bs = 1M count = 1024 
    1024 + 0 записей в {{1 }} 1024 + 0 записей из 
    1073741824 байта (1,1 ГБ) скопировано, 10,958 с, 98,0 МБ / с 
     
     $ ls -l casper-rw 
     - rw-rw-r--. 1 saml saml 1073741824 2 апреля 19:56 casper-rw 
     
  2. Отформатируйте его как EXT3

     $ mkfs.ext3 -F casper-rw 
    mke2fs 1.42.7 (21-янв- 2013 г.) 
    Отказ от блоков устройств: готово 
    Метка файловой системы = 
    Тип ОС: Linux 
    Размер блока = 4096 (log = 2) 
    Размер фрагмента = 4096 (log = 2) 
    Шаг = 0 блоков, ширина полосы = 0 блоков 
    65536 инодов, 262144 блока 
    13107 блоков (5,00%) зарезервированы для суперпользователя {{ 1}} Первый блок данных = 0 
    Максимальное количество блоков файловой системы = 268435456 
    8 групп блоков 
    32768 блоков на группу, 32768 фрагментов на группу 
    8192 инода на группу { {1}} Резервные копии суперблока, хранящиеся в блоках: 
    32768, 98304, 163840, 229376 
     
    Размещение групповых таблиц: выполнено 
    Запись таблиц inode: выполнено {{1 }} Создание журнала (8192 блока): готово 
    Запись суперблоков и информации учета файловой системы: выполнено 
     
  3. Смонтировать

     $ sudo mount -o loop casper-rw / mnt / {{ 1}} 
  4. Проверьте это

     $ ls / mnt / 
    lost + found 
     
     $ df -h / mnt / 
    Размер используемой файловой системы Доступно Использование% Установлено на 
     / dev / loop0 976M 1,3M 924M 1% / mnt 
     
5
27.01.2020, 21:16

Easy2Boot поддерживает постоянство для нескольких ISO. Примеры можно найти в папке _ISO \ docs \ Sample mnu files. Вы можете иметь много ISO-файлов с постоянным хранением на одном USB-накопителе. Посмотрите на веб-сайт www.easy2boot.com и www. Веб-сайт .rmprepusb.com. http://www.easy2boot.com/add-payload-files/persistence/

0
27.01.2020, 21:16

Теги

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