Перенести процесс в другой Сервер tmux

Не уверен, что это все еще интересно, но для будущих гуглеров, таких как я:

При загрузке / установке из grub используются два отдельных корневых каталога. Это корень grub и корень linux (я не уверен, что это технический термин).


Корень grub может быть установлен в grub.cfg , и он определяет, какие файлы легко видны в grub. Корневой каталог grub по умолчанию должен быть корневым каталогом загрузочного диска grub, поэтому, если содержимое вашего загрузочного диска:

/boot/
/boot/grub2/
/boot/grub2/grub.cfg
...

Тогда расположение grub.cfg из корня grub будет /boot/grub2/grub.cfg

Корень grub можно изменить в grub.cfg, используя set root = .

Вы можете использовать это, чтобы установить корень в каталог внутри текущего корня ( set root = / boot / приведет к тому, что grub.cfg будет расположен по адресу /grub2/grub.cfg), который ведет себя аналогично chroot в Linux.

Вы также можете изменить текущий корень на другой диск ( set root = (hd0,1) установит ваш корень на hd0, раздел 1. Полный список устройств, которые вы можете использовать, см. страница grub об этом http://www.gnu.org/software/grub/manual/grub.html#Device-syntax ).

Хотя изменение корневого каталога grub может быть полезно, вы также можете префикс любого пути тем, что вы собираетесь использовать (например, linux (hd0,1): / boot / OS / RHEL / isolinux / vmlinuz вместо сначала установите root = (hd0,1) ).Кроме того, после запуска ядра корень grub не имеет значения


Что касается корня Linux , это параметр, который вы можете передать ядру (vmlinuz) при его загрузке. Для этого вы можете передать ядру параметр root = (это значение появится в / proc / cmdline)

Однако важно отметить, что этот новый корень, как ожидается, будет содержать корневую файловую систему Linux (см. для / etc / / var / и так далее). При установке вы предоставляете initrd (INITial Ram Disk), который содержит эти элементы, поэтому вам, вероятно, не нужно / не нужно менять корень Linux во время установки.

Если вы все же меняете корень Linux, будьте осторожны с установочным носителем Linux, который не является корневой файловой системой Linux, хотя внутри находится initrd.img.


Если вы пытаетесь использовать файлы в вашем iso в качестве аргументов вашего ядра, тогда есть решение. Если вы создадите устройство loopback в grub, оно будет сохраняться при запуске ядра (так что вы должны увидеть устройство с именем / dev / loop0 в корне Linux во время установки)

Я дам небольшой фрагмент файла grub.cfg, который относится к ISO и RHEL, в частности:

menuentry "RHEL" {
    set isofile='/boot/iso/RHEL.iso' #this is just a grub variable

    loopback loop $isofile           #mount the $isofile with label=loop as a loopback device

    set root=(loop)                  #set the grub root to the mounted iso (so / is the top level directory in the iso)

    #this starts the kernel and passes the paramter inst.stage2 using the ISO and kickstart as a location on the loopback device created by grub (the syntax for this line is liable to change between distros)
    linux /isolinux/vmlinuz noeject inst.ks=hd:/dev/loop0:/ks/ks.cfg inst.stage2=hd:LABEL=USBDRIVELABEL:/$isofile  

    initrd /isolinux/initrd.img      #provide an initial ramdisk (which will become the **Linux root**
}

Имейте в виду, что синтаксис строки ядра в grub.cfg следующий:

linux [path to kernel] [kernel argument 1] [kernel argument 2] ...

Все аргументы ядра появятся в / proc / cmdline . Важно отметить, что, поскольку они обрабатываются, синтаксис grub ядра недопустим.

Вы можете найти больше об этом в документации grub ( http://www.gnu.org/software/grub/manual/grub.html#Introduction )

и на странице Archwiki параметров ядра ( https://wiki.archlinux.org/index.php / kernel_parameters # GRUB )

, а также параметры загрузки для соответствующего дистрибутива (RHEL https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/ chap-anaconda-boot-options.html # list-boot-options-sources )

1
26.03.2019, 18:47
1 ответ

Портативного способа сделать это не существует. Существует программа https://github.com/nelhage/reptyr, которая может делать это в Linux (, она использует ptrace и вставляет все системные вызовы ), но я не знаю, насколько она надежна и поддерживается ли она до сих пор. YMMV.

0
28.01.2020, 00:16

Теги

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