Рідна підтримка
Оскільки Ubuntu 11.04 та Debian wheezy (7.0), Debian та Ubuntu мають підтримку мультиархів: ви можете змішувати пакети x86_32 (i386) та x86_64 (amd64) в одній системі прямо. Це відомо як мультіархітектурная підтримка Див відповіді warl0ck в для більш докладної інформації.
У старих випусках Debian і Ubuntu постачаються з багатьма 32-бітовими бібліотеками на amd64. Встановіть пакет , щоб мати базовий набір 32-бітових бібліотек, а також, можливо , інших пакетів , які залежать від цього. Ваші 32-бітні виконувані файли повинні просто працювати, якщо у вас є всі необхідні бібліотеки. Для розробки встановіть і знову можливо інші пакети, які залежать від нього, такі як . Ви можете бути корисними і на Debian. Передайте опцію gcc для компіляції для ix86.ia32-libs 
gcc-multilib 
g++-multilibbinutils-multiarch 
ia32-libs-dev-m32
Зауважте, що uname -mвсе одно з’явиться, x64_64якщо ви працюєте з 64-розрядним ядром, незалежно від того, які 32-бітні компоненти режиму користувача встановлені. Описаний нижче Шрот переймається цим.
Шрот
Цей розділ є керівництвом щодо встановлення подібного до Debian дистрибутива «всередині» іншого дистрибутива Linux. Це сформульовано з точки зору встановлення 32-розрядного Ubuntu всередині 64-розрядного Ubuntu, але має застосовуватися з незначними модифікаціями в інших ситуаціях, наприклад, встановлення Debian нестабільно всередині Debian stabil або навпаки.
Вступ
Ідея полягає у встановленні альтернативного дистрибутива в піддереві і запуску з цього. Ви можете встановити 32-бітну систему в 64-бітну систему таким чином, або інший випуск вашого дистрибутива, або тестове середовище з встановленими різними наборами пакетів.
chrootВиклик команди і система починає процес з точки зору файлової системи , яка обмежується поддерева дерева каталогів. Debian та Ubuntu ship schroot , утиліта, яка обертається навколо цієї функції, щоб створити більш корисне підсередовище .
Встановіть schrootпакет
( Debian ) та debootstrapпакет
( Debian ). Debootstrap потрібен лише для встановлення альтернативного розподілу і після цього може бути видалений.
Налаштувати schroot
У цьому прикладі описано, як налаштувати альтернативне середовище 32-розрядного Ubuntu 10.04LTS (зрозумілий рись). Аналогічна установка повинна працювати з іншими випусками Debian і Ubuntu. Створіть файл /etc/schroot/chroot.d/lucid32із таким вмістом:
[lucid32]
description=Ubuntu 10.04LTS 32-bit
directory=/32
type=directory
personality=linux32
users=yourusername
groups=users,admin
Рядок directory=/32повідомляє schroot, куди ми помістимо файли 32-бітної установки. У рядку username=yourusernameзазначено, що користувачеві yourusernameбуде дозволено використовувати schroot. У рядку groups=users,adminзазначено, що користувачам будь-якої групи буде дозволено використовувати schroot; Ви також можете поставити users=…директиву.
Встановіть новий дистрибутив
Створіть каталог і почніть заповнювати його за допомогою debootstrap. Debootstrap завантажує та встановлює основний набір пакетів для вказаного розподілу та архітектури.
mkdir /32
debootstrap --arch i386 lucid /32 http://archive.ubuntu.com/ubuntu
У вас вже майже працює система; далі - незначні вдосконалення. Schroot автоматично перезаписує декілька файлів, /32/etcколи ви запускаєте його, зокрема конфігурацію DNS в /etc/resolv.confта базу даних користувачів у /etc/passwdта інші файли (це може бути замінено, див. Документацію). Є ще кілька файлів, які ви можете скопіювати вручну раз і назавжди:
cp -p /etc/apt/apt.conf /32/etc/apt/ # for proxy settings
cp -p /etc/apt/sources.list /32/etc/apt/ # for universe, security, etc
cp -p /etc/environment /32/etc/ # for proxy and locale settings
cp -p /etc/sudoers /32/etc/ # for custom sudo settings
Не буде файлу /etc/mtabчи /etc/fstabв chroot. Я не рекомендую використовувати mountкоманду вручну в chroot, виконайте це ззовні. Але створити достатньо хороший, /etc/mtabщоб такі команди, як dfробота, грамотно працювали.
ln -s /proc/mounts /32/etc/mtab
З directoryтипом, schroot буде виконувати прив'язку монтування ряду каталогів, тобто ці каталоги будуть спільно з батьківською установкою: /proc, /dev, /home, /tmp.
Послуги в Chroot
Як описано тут, schroot не підходить для запуску демонів. Програми в schroot будуть знищені, коли ви виходите з schroot. Використовуйте "звичайний" schroot замість schroot "каталогу", якщо ви хочете, щоб він був більш постійним, і встановіть постійні кріплення прив'язки у /etc/fstabбатьківській установці.
У Debian та Ubuntu служби автоматично запускаються при встановленні. Щоб уникнути цього (що може порушити послуги, що працюють за межами chroot, зокрема через те, що мережеві порти спільні), встановіть політику заборони служб у chroot. Поставте такий сценарій як /32/usr/sbin/policy-rc.dі зробіть його виконуваним ( chmod a+rx /32/usr/sbin/policy-rc.d).
#!/bin/sh
## Don't start any service if running in a chroot.
## See /usr/share/doc/sysv-rc/README.policy-rc.d.gz
if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then
exit 101
fi
Заселіть нову систему
Тепер ми можемо почати використовувати chroot. На цей момент ви захочете встановити ще кілька пакетів.
schroot -c lucid32
sudo apt-get update
apt-get install lsb-core nano
...
Можливо, вам доведеться створити кілька локалів, наприклад
locale-gen en_US en_US.utf8
Якщо schroot призначений для старішого випуску Ubuntu, наприклад 8.04 (витривалий), зауважте, що пакет ubuntu-стандарт тягне в MTA. Виберіть nullmailerзамість за замовчуванням postfix(можливо, ви хочете, щоб ваш chroot надсилав пошту, але ви точно не хочете, щоб він отримував жодну).
Йдемо далі
Для отримання додаткової інформації див. schrootПосібник , поширені питання щодо schroot та
schroot.confпосібник . Schroot є частиною проекту Debian autobuilder (buildd) . На сторінці спільноти Ubuntu можуть бути додаткові корисні поради щодо debootstrap .
Віртуальна машина
Якщо вам потрібна повна ізоляція альтернативного середовища, використовуйте віртуальну машину, таку як KVM ( qemu-kvm
) або VirtualBox .