файлы копии с tftp сервера

1
21.10.2014, 19:42
3 ответа

Как насчет использования реального tftp клиента?

Те двое, что приходят мне на ум:

2
27.01.2020, 23:15

Вы, кажется, хотите изменить все вхождения

TRANF_FIELD.some_enum_value.toInt()

на

TRANF_FIELD.that_enum_value

, оставив другие перечисления (например, TANG _ FIELD.TRANG _ VALUE.toInt () ) и другие способы (например, TRANF _ FIELD.TRANF _ VALUE.length () ). Это кажется простым:

sed 's/\(TRANF_FIELD\.[A-Za-z0-9_]*\)\.toInt()/\1/'

где

  • [A-Za-z0-9 _] * - любое количество буквенно-цифровых символов (включая знаки подчеркивания). Это значение должно соответствовать любому допустимому значению перечисления. На самом деле, [A-Za-z _] [A-Za-z0-9 _] * было бы лучше, поскольку [A-Za-z0-9 _] * может совпадать с пустым рядом или с цифрой.
  • \( ... \) группирует имя перечисления ( TRANSF _ ПОЛЕ ), литеральную точку (\. ), и значение перечисления (из первого маркера).
  • \1 означает «заменить полный ряд, который вы нашли, первой группой», т.е. удалите часть .toInt () .
  • Для обработки нескольких вхождений в строке добавьте g (глобальный) после последней косой черты.
  • Это не будет обрабатывать встроенное пробельное пространство, например, TRANSF _ ПОЛЕ. TRANF_VALUE. Исправить это остается как упражнение.
  • Это не будет обрабатывать выражения, которые разбиты на строки; например,

      i = TRANF_FIELD
    .TRANF_VALUE.toInt ();
    

    Это труднее исправить.

-121--146361-

Возможно, вы столкнулись с проблемами, так как в /dev/mem имеются отверстия: несуществующие области памяти не могут быть прочитаны.

последовательности предназначен для чтения обычного файла (или трубы или другого входного потока) от начала до конца и предполагает, что в его входе не может быть отверстий. Возможно, он прерывается при первом получении ошибки чтения, которая соответствует первому отверстию в /dev/mem . Это значит, что он никогда не прочитает ничего за первой дырой.

-121--161466-

Я больше всего знаком с тем, как Cobbler наборов TFTP, поэтому я не уверен, имеет ли это значение, но я все равно предложу эту информацию. Cobbler устанавливает загрузчик, используя pxelinux.0 , как @ Патрик объясняет в комментариях , а также @ msw . Но он также устанавливает соответствующий каталог pxelinux.cfg/ рядом с ним, который содержит MAC-адреса для каждой системы, которая будет подключаться к серверу.

Эти файлы содержат pxelinux.cfg следующую информацию:

$ more 01-54-52-00-ff-ff-ff
default linux
prompt 0
timeout 1
label linux
        kernel /images/Centos56-x86_64/vmlinuz
        ipappend 2
        append initrd=/images/Centos56-x86_64/initrd.img ksdevice=bootif lang=  console=ttyS0,115200 text serial kssendmac  ks=http://192.168.1.207/cblr/svc/op/ks/system/kvmcobblertest

Фактическое ядро Linux, которое загрузит эта виртуальная машина, содержится в этом каталоге, доступном для TFTP, /images/Centos56-x86 _ 64/vmlinuz . Вся структура каталогов TFTP выглядит следующим образом с обратной стороны сервера:

$ ls -l /tftpboot/
total 348
drwxr-xr-x 2 root root   4096 Jun 22  2011 etc
drwxr-xr-x 2 root root   4096 Jul  9  2012 grub
drwxr-xr-x 6 root root   4096 Jul  9  2012 images
drwxr-xr-x 2 root root   4096 Jun 30  2011 images2
-rw-r--r-- 1 root root  20020 Jul  9  2012 memdisk
-rw-r--r-- 1 root root  39188 Jul  9  2012 menu.c32
drwxr-xr-x 2 root root   4096 Jun 22  2011 ppc
-rw-r--r-- 1 root root  14716 Jul  9  2012 pxelinux.0
drwxr-xr-x 2 root root   4096 Jul  9  2012 pxelinux.cfg
drwxr-xr-x 2 root root   4096 Jul  9  2012 s390x
-rw-r--r-- 1 root root 198192 Jul  9  2012 yaboot

Единственное, что изначально доступно серверам, которые загружаются с этого сервера TFTP, это, как описано другими, pxelinux.0 + конфигурационный файл, который соответствует MAC-адресу конкретного сервера.

Каталог изображений

Это выглядит так, если вам интересно:

$ tree /tftpboot/images
/tftpboot/images
|-- Centos56-x86_64
|   |-- initrd.img
|   `-- vmlinuz
|-- Centos56-xen-x86_64
|   |-- initrd.img
|   `-- vmlinuz
`-- Centos60-x86_64
    |-- initrd.img
    `-- vmlinuz

3 directories, 6 files
1
27.01.2020, 23:15

Комментарий @patrick, сделанный на ваш вопрос, был мертвым правым: все клиентские машины необходимо загрузить PXE, - это транслировать запрос DHCP. DHCP-сервер (обычно на загрузочном сервере PXE) увидит MAC-адрес клиентского устройства и будет использовать его к

  • , дайте клиенту IP-адрес
  • Скажите клиенту, какие файлы он должен получить с сервера PXE

В этот момент клиент знает адрес сервера и что получить от него. К сожалению, есть куча сквозных битов, таких как может быть только один DHCP-сервер, который имеет особую конфигурацию для клиента PXE, сервер TFTP должен быть запущен и так далее.

Существует довольно хорошая пошаговая пошаговое руководство по адресу https://wiki.debian.org/pxebootinstall . Вы не указывали свой дистрибутив, но большинство систем PXE будут хотя бы рифма с этим руководством.

Я знаю, что ваш вопрос говорит, что вы не хотите знать адрес сервера PXE. Но есть только один путь (без написания собственного клиента), которые можно сделать, с клиентом PXE DHCP запрашивателя / процессором. Если вы хотите предсказать эту часть, вы выбросите большую часть кардабилов, необходимых для загрузки.

Я знаю, что на самом деле вы на самом деле не хотите загрузить машину, которая помещает вас в положение внедрения много протокола PXE для целей тестирования. Если у вас нет доступной машины, мне интересно, поскольку вам нужно вообще тестировать PXE.

3
27.01.2020, 23:15

Теги

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