Корень центра между двумя установками Linux

С zsh и vim, Вы могли сделать:

vim -d =(cd dir1 && du -a | sort -k2) =(cd dir2 && du -a | sort -k2)

(можно заменить vim -d с diff -u или kompare или Ваша предпочтительная текстовая утилита сравнения).

=(...) форма замены команды совпадает с <(...) один найденный в ksh, zsh и ударе за исключением того, что это использует временный файл вместо канала так, чтобы он мог работать с командами, которые ожидают регулярный файл (как vim). Для команд, которые не имеют того ограничения (как diff), можно использовать <(...) вместо этого.

4
18.01.2014, 19:49
2 ответа

pivot_root на самом деле используется во время начальной загрузки для спрыгивания с электронного диска в реальный корень. Это легко. Когда Вами управляют, что никакой процесс, получающий доступ к старой корневой файловой системе, затем, Вы можете также umount свой старый корень.

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

Если Вы находитесь на Debian и хотите запустить некоторые программы на Ubuntu и предположить, что у Вас есть ядро, которое работает над обоими, то Вы можете легкий chroot к нему:

mount /dev/vg/ubuntu-root /mnt/ubuntu
cd /mnt/ubuntu
for p in dev proc sys; do mount --bind /$p $p; done
chroot . /bin/bash --login

или возможно намного легче

kvm -m 900 -vga std -hda /dev/vg/ubuntu-root
4
27.01.2020, 20:52

Это настолько легко?

У Вас должно будет быть все в системе закрытие, я думаю, или Вы не сможете umount старый корень.

Можно использовать chroot самостоятельно без pivot_root, в этом случае обе системы могут быть доступными одновременно, например, путем переключения VT's или только запуска с терминала GUI (это означает не umounting старый корень, также). Я рекомендую испытать это сначала.

Я мог повредить что-то делающее это

Это не серьезный риск, нет.

Это просто прекратит выполнять распределение A и начнет выполнять распределение B, 'как будто' я перезагрузил?

Не, как будто Вы перезагрузили, нет. Я на самом деле никогда не пробовал это законченной установкой дистрибутива, но я думаю, что одна проблема будет то, что обычные системные службы не будут работать. Ничто не будет работать, но Ваш экземпляр оболочки и init. Таким образом, если Вы хотите сделать вещи нормальными, необходимо будет сказать init/upstart что-то, чтобы заставить это запускать сервисы. Это - одна причина инструменты вокруг только с chroot будет легче, пока Вам не выяснили все, с тех пор если что-то будет завинчено, то система A будет все еще работать, и можно запустить снова оттуда вместо того, чтобы иметь необходимость перезагрузить. Также легко скопировать материал назад и вперед с точки зрения системы (просто быть разумным об этом, например, не заменяйте используемые файлы).

Оба дистрибутива имеют различные ядра.

Только система ядро будет использоваться. Я думаю, что возможно заменить ядра в горячем режиме (q.v. kexec), но это - целый другой вопрос и что-то, чего Вы, вероятно, хотите избежать, если это возможно. Это не должно быть необходимо так или иначе.

Однако...

Удостоверьтесь, что Вы помещаете копию /lib/modules/x.x.x каталог для системы ядро в системе B корневая файловая система, или Вы не сможете загрузить любые модули ядра!

2
27.01.2020, 20:52

Теги

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