Отдельная метка тома для разделов ISO и EFI с использованием xorriso?

Не используйте вет + мост! Используйте маквлан!

Недавно я боролся с veth + bridge, как и вы, к счастью, сегодня вечером я нашел эту ссылку , в которой говорится:

Before MACVLAN, if you wanted to connect to physical network from a VM or namespace, you would have needed to create TAP/VETH devices and attach one side to a bridge and attach a physical interface to the bridge on the host at the same time, as shown below.

Now, with MACVLAN, you can bind a physical interface that is associated with a MACVLAN directly to namespaces, without the need for a bridge.

И вот что я сделал:

$ sudo ip netns add ns0
$ sudo ip netns exec ns0 ip link set lo up
$ sudo ip link add macvlan0 link eth0 type macvlan mode bridge
$ sudo ip link set macvlan0 netns ns0
$ sudo ip netns exec ns0 ip link set macvlan0 up
$ sudo ip netns exec ns0 ip addr add 172.29.6.123/21 dev macvlan0
$ sudo ip netns exec ns0 ping 172.29.0.1
PING 172.29.0.1 (172.29.0.1) 56(84) bytes of data.
64 bytes from 172.29.0.1: icmp_seq=1 ttl=64 time=0.360 ms
64 bytes from 172.29.0.1: icmp_seq=2 ttl=64 time=0.412 ms

Работает!

1
07.11.2020, 03:18
2 ответа

То, что вы видите, на самом деле является ошибкой в ​​файле udev. 60 -постоянных -storage.rules, которые теперь должны быть исправленыhttps://github.com/dsd/systemd/commit/dd1afeea4ed9b60b8a4d8b2a6d211f919cb5202eОбсуждается вhttps://github.com/systemd/systemd/issues/14408

Без исправления файла правил любой раздел без LABEL, т.е. потому что у него нет файловой системы, можно украсть МЕТКУ файловой системы в базе устройство. Таким образом, вашему образу раздела EFI потребуется LABEL, а не другие разделы. за исключением того, что должен присутствовать монтируемый раздел ISO.


Что ж, вы уже узнали, как это обойти. Итак, следующее больше для архивов:

Вы можете получить таблицу разделов только с монтируемыми разделами, добавив образ файловой системы EFI в качестве раздела вместо того, чтобы помечать файл в ISO как раздел.

-  -boot_image any efi_boot_part=--efi-boot-image \
-  -boot_image any partition_table=on \
+  -append_partition 2 0xef /...path.on.disk.../efi.img \

Если вы хотите использовать GPT вместо MBR, добавьте:

-boot_image any appended_part_as=gpt \
-boot_image any partition_offset=16 \
-padding 0 \
-compliance no_emul_toc \

Если вы хотите опустить файл efi.img внутри файловой системы ISO 9660:

-   -boot_image any efi_path='/efi.img'
-   -boot_image any platform_id=0xef \
    -append_partition 2 0xef /u/FERTIG/SX \
+   -boot_image any cat_path=/boot.cat \
+   -boot_image any efi_path='--interval:appended_partition_2:all::' \
+   -boot_image any platform_id=0xef \

(Необходимость в cat _path=/boot.cat возникает из-за ошибки xorriso, которую я обнаружил прямо сейчас. В пути к каталогу должен быть "/", и xorriso делает это неправильно, если cat _path= не установлен и нет «/» в efi _path=.)

2
18.03.2021, 22:51

Использование MBR вместо GPT кажется единственным надежным способом добиться такой адресации.

xorriso \
  -volid "FooInstall" \
  -map /path/to/content \
  -boot_image any appended_part_as=mbr \
  -boot_image any partition_offset=16 \
  -boot_image any partition_table=on \
  -boot_image any efi_path='/efi.img' \
  -boot_image any platform_id=0xef \
  -boot_image any iso_mbr_part_type=0x83 \
  -boot_image any next \
  -append_partition 2 0xef "/path/to/content/efi.img" \
  -boot_image any efi_path=--interval:appended_partition_2:all:: \
  -end

...а также добавление -n OTHERNAMEв командную строку mkdosfsдля устранения неоднозначности имени тома ISO приводит к носителям, для которых создается ссылка /dev/disk/by-label/FooInstall, указывающая на ISO.

0
18.03.2021, 22:51

Теги

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