Мы можем изменить пакеты в Linux с нуля?

Чтобы сервер выполнил двоичный файл ELF (как интерпретатор Python) в одном из его процессов, он должен смочь к mmap это в памяти. Это может только сделать это, если файл находится в виртуальной файловой системе и если файловая система, служащая ему, поддерживает его.

Так, необходимо или скопировать это python исполняемый файл (и его зависимости) через к серверу в одной из смонтированных файловых систем Вы имеете доступ для записи к или монтируете файловую систему Вашей машины монетного двора на сервере по своего рода сетевой файловой системе как sshfs, nfs или cifs.

Для монтирования файловой системы Вам нужны полномочия суперпользователя, или по крайней мере некоторые из тех полномочий нужно предоставить Вам (через некоторый suid исполняемый файл как fusermount). Администратор того сервера только допустил бы, что полномочие доверяемым пользователям, поскольку достаточно способно быть злоупотребленным и получить дальнейшее право.

Если бы Вы не можете смонтировать файловые системы, другая опция состояла бы в том, чтобы запустить программное обеспечение в эмулированной ОС как использование qemu. Вопрос, который я задал бы сначала, хотя: почему необходимо выполнить это на сервере? Какой ресурс сервера, к которому программа должна иметь доступ? Разве Вы не могли выставить те ресурсы своей машине монетного двора и запустить программное обеспечение туда вместо этого. Необходимо было бы сделать что-то как этот также, если бы программа должна была работать на VM на сервере.

Для запуска qemu VM на сервере как копия Вас чеканят машину, предполагая, что Вы используете LVM на машине монетного двора и что существует только одна файловая система (корневая файловая система) там на /dev/mint_VG/root, Вы могли сделать:

  • Возьмите снимок LVM /dev/mint_VG/root который станет корневой файловой системой VM на сервере:

    sudo lvcreate -s -L10G -n root_vm_on_server mint_VG/root
    
  • Экспортируйте его как сетевое блочное устройство:

    sudo nbd-server -C /dev/null 12345 /dev/mint_VG/root_vm_on_server
    
  • передайте свое ядро и изображения initrd к серверу:

    scp /boot/{vmlinux,initrd.img}-"$(uname -r)" server:
    
  • На сервере, выполненном qemu как (возможно, в screen или tmux):

    qemu -drive file=nbd:mint-machine:12345,if=virtio -m 4096 \
       -kernel vmlinuz-xxx -initrd initrd.img-xxx \
       -append 'root=/dev/vda ro init=/bin/bash' -monitor stdio -vnc :4 \
       -smp 8,core=8
    

(здесь работающий с 8 виртуальными центральными процессорами и 4 ГБ или RAM, и как запуск, просто работающий bash в VM).

Получите графическую консоль со средством просмотра VNC один server-machine:4, или Вы могли использовать последовательную консоль вместо этого, если Вам не нужна графика.

Если можно убедить системного администратора на сервере позволять Вам использовать kvm (дайте Вам доступ для записи к /dev/kvm), это сделает это намного более эффективным.

3
23.08.2014, 21:02
1 ответ
[

] Из их []общего FAQ:[][

] [
] [

][]Могу ли я использовать версию, более новую, чем та, что есть в Книге?[][

] [
] [

]Если вы впервые собираете LFS, использовать версию, отсутствующую в книге, или отличающуюся от нее каким-либо образом - это плохая идея. У регуляторов IRC-канала есть поговорка "FBBG", означающая "Следуй за Книгой, Книга Хорошая". Они и люди из списков помогли многим несчастным новичкам, которые отклонились от книги во время первой сборки.[

] [

]После того, как вы построили систему "по книге", у вас есть стабильная база знаний, из которой вы можете экспериментировать с содержанием вашего сердца (или болью, как это часто бывает.)[

] [
] [
] [

]Я думаю, они говорят это не просто так.[

].
1
27.01.2020, 21:31

Теги

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