В настоящее время я использую Ubuntu 13.04, elementaryos и Windows 8. Я также хотел бы установить Backtrack для редкого использования. Но я уже вышел за пределы раздела. Итак, можно ли было объединить два раздела и установить все дистрибутивы linux в этот один раздел с общим свопом ?
Поскольку Элиа украл s> расширил мой первоначальный ответ и превратил его в роман book s>, я расскажу вам пару способов запуска другого дистрибутива Linux внутри вашего существующие разделы без проблем; все они требуют определенного разделения, чтобы программы, скрипты и файлы конфигурации каждого дистрибутива не перекрывались; что традиционно является одной из основных причин использования раздела.
Эта настройка уже была рассмотрена в askUbunt .
Этот недостаток заключается в том, что запуск дистрибутива внутри виртуальной машины имеет много недостатков: меньше оперативной памяти, меньше процессоров и менее прямой интерфейс с аппаратными компонентами, однако он стал достаточно эффективным, чтобы стать довольно распространенным в больших серверах. окружающая среда.
Самый простой способ сделать это - через UnNetBootin. Это [практическое руководство в Sofpedia] дает хороший пример того, как использовать UnNetBootin для достижения этой цели. ( http://news.softpedia.com/news/How-to-Boot-ISO-Images-from-Your-Hard-Drive-190443.shtml ) для архивных целей) Однако это может быть сделано также в окнах , как описано здесь . В той же статье они утверждают, что установка в iso в папку так же просто, как:
Введите эти команды:
sudo mkdir /distro
sudo chown `whoami`:`whoami`
cp <YOUR-DOWNLOADED>.iso /distro/distro.iso
Извлечь Linux_kernel из iso & amp; Ram_disk to / distro
Откройте /boot/grub/menu.lst
и добавьте следующее:
#``ADD NEW ENTRY``#
title Install Linux
root (hdX,X)
kernel /distro/<YourDownloadedLinuxKernel>
initrd /distro/<YourDownloadedRamDisk>
Я полагаю, что вариант № 2 ограничивает пространство в iso и, таким образом, затрудняет установку большего количества приложений (хотя вы всегда можете перенести некоторые точки монтирования в не виртуализированное пространство). Я не совсем уверен, как это сделать изнутри Linux, хотя знаю, что это широко распространено в виртуализированных системах (вариант # 1), но я полагаю, что это стандартное поведение, когда использует Wubi для установки Ubuntu внутри Windows .
Обычно это делается по умолчанию во время установки, если установщик видит раздел и помечается соответствующим образом. Если вы используете виртуализацию, вам нужно сделать физические диски прозрачными для своей системы, чтобы воспользоваться этим преимуществом. Для virtualbox это делается путем установки гостевых дополнений . [Тысячу сто сорок одна]
Это написано так, что оно может быть прочитано полностью, снято, или разделы могут быть пропущены. Тем не менее, я настоятельно рекомендую заглянуть в последний раздел (« вы, возможно, вообще не ограничены четырьмя разделами »), прежде чем решить, что делать, если у вас есть диск в формате GPT или нет. при условии ограничения в 4 раздела.
Установка нескольких систем Linux в одном разделе может быть возможной, но потребует серьезной модификации систем, чтобы заставить их обращаться к правильным файлам.
Например, разные ОС обычно используют разные исполняемые файлы для init
. Но ожидается, что исполняемый файл для init
всегда будет существовать в /sbin/init
. Для решения этой и аналогичных проблем вам, по крайней мере, придется заставить системы использовать сильно настроенные аргументы загрузки ядра. Чтобы решить некоторые проблемы, вам, возможно, придется вручную перекомпилировать ядро. Вам также придется иметь дело с изменением местоположений по умолчанию, в которых установлены библиотеки и где их ищут, когда запускается программа, использующая библиотеку, поэтому программы, установленные в одной ОС, не используют разные версии одной и той же библиотеки другой ОС ( что иногда будет несовместимо). Чтобы заставить менеджеры пакетов работать так, как вам нужно, вам, возможно, придется отредактировать их исходный код и перекомпилировать (что означает, что вы не можете обновить их обычным способом).
chroot
в отдельные chroot-тюрьмы в начале загрузки. Я считаю, что это возможно и может позволить себе необходимую стабильность. Возможно, другие будут публиковать ответы с конкретными решениями.
Напротив, вы можете и довольно легко заставить разные операционные системы GNU / Linux использовать одинаковые раздел подкачки. Вообще говоря, вы не сможете переходить в спящий режим одной системы и загружаться в другую, но многие люди все равно не используют спящий режим.
В любом случае, если вы пытаетесь уменьшить количество используемых разделов, вы можете полностью отказаться от раздела подкачки и использовать вместо этого файлы подкачки . (Вы даже можете использовать один и тот же файл подкачки для перестановок нескольких ОС.)
... сделать расширенный раздел. Это действует как контейнер для разделов и позволяет эффективно иметь более четырех разделов на диске с таблицей разделов типа, который поддерживает только 4 «основных» раздела .
Для этого загрузитесь с live CD / DVD / USB флешки и запустите GParted. Если у вас уже есть четыре раздела, вам придется сначала удалить один. Это может быть раздел подкачки, как предполагает virtualxtc - при условии, что вы не спите на нем. (Поэтому прежде чем делать это, выключите или перезапустите правильно, а не в спящем режиме.)
Вот несколько скриншотов, иллюстрирующих простую ситуацию, когда создается расширенный раздел. (Конечно, размеры здесь нереалистичны, так как я использовал небольшую флешку для создания скриншотов.) 1117] пробел (либо в горизонтальной полосе, представляющей диск, либо в списке под ним) и нажал Новый .
Это поднимает окно, показанное выше. Нажмите справа от Создать как и выберите Расширенный раздел . (По умолчанию это будет Первичный раздел , а это не то, что вам нужно.)
Сделать расширенный раздел максимального размера.
Теперь внутри расширенного раздела вы можете создавать дополнительные разделы по мере необходимости, минуя ограничение в 4 раздела.
Вы делаете это так же, как вы создаете любой раздел в GParted ... просто внутри расширенного раздела, который действует как контейнер для других разделов. Эти разделы называются «логическими разделами», чтобы отличать их от «первичных разделов», которые не содержатся внутри расширенного раздела.
Когда вы это сделаете, это будет выглядеть примерно так (и затем вы можете щелкнуть галочку на панели инструментов, чтобы выполнить Правка> Применить все операции, чтобы применить ваши изменения.
Как обычно, неплохо бы убедиться, что по крайней мере все ваши важные файлы (например, документы) были скопированы перед выполнением любого разбиения.
Как вы знаете, разделы форматируются до их использования. Но сам диск также «форматируется» в некотором смысле. тип данных, которые они могут хранить, и способ хранения данных (обычно файлов). Но диск "отформатирован" с таблицей разделов и другой информацией. Существует более одного вида таблицы разделов. "msdos" «таблица разделов (иногда называемая« msdos disklabel »или« таблица разделов MBR », хотя в других контекстах используется MBR) ограничена четырьмя основными разделами.
Но так Таким образом, другие типы таблиц разделов вообще не ограничены, и вы можете использовать такой тип. Конечно, если GParted уже сказал вам, что вы не можете создать другой первичный раздел, это вряд ли будет так.
Но в наши дни многие жесткие диски, особенно диски с Windows 8 (особенно если они предустановлены) и диски размером более 2 терабайт, поставляются в формате GPT .
GPT (таблица разделов GUID) не ограничивает вас четырьмя разделами; Вы можете сделать больше без каких-либо особых усилий или обходного пути. Так что, если вы еще не пробовали это, я рекомендую сделать это. Иногда люди думают, что они ограничены четырьмя, но на самом деле имеют GPT-диск и вообще не ограничены.
Один из способов выяснить, есть ли у вас таблица разделов «msdos» или другой, менее ограничивающий тип таблицы разделов, - просто попытаться создать пятый раздел (не делая его внутри расширенного раздела - расширенные разделы обычно не возможно, кроме таблицы разделов "msdos").
Другой способ - проверить напрямую в GParted. Для этого нажмите «Просмотр»> «Информация об устройстве». Панель ** Информация об устройстве * появится слева от списка разделов, под горизонтальным представлением диска.
Напротив, если у вас есть GPT-диск, вы увидите «gpt» вместо «msdos». (Существуют и другие типы таблиц разделов, GPT и «msdos» являются наиболее вероятными для ПК.)
Обратите внимание, что, хотя можно превратить диск с таблицей разделов «msdos» в GPT-диск в GParted (с Device> Create Partition Table ...), при этом «сотрут» все данные на диске! ( Вот почему я не рекомендую это как решение вашей проблемы.)
Возможно, я установил несколько дистрибутивов в одном разделе, ниже я объясню, как это сделать. Я немного горжусь тем, что приведу первый пример этого.
Я нашел несколько разных способов превратить chroot в загрузочную подпапку, но они не упомянули, работает ли их метод безупречно, и им не хватает пошагового руководства.
https://unix.stackexchange.com/questions/39423/boot-linux-system-from-a-subdirectory-on-a-partition https: // unix.stackexchange.com/questions/43283/boot-into-chroot-directory-leaves-the-root-partition-read-only https://superuser.com/questions/384437/booting-linux -system-from-chroot-is-there-a-лучше-делать-это-это https://bbs.archlinux.org/viewtopic.php?pid=932362#p932362 Как загрузиться с установки на основе debootstrap? http://markmail.org/message/vgttmcos2mr363nc https://serverfault.com/questions/174347/is-it -possible-to-mount-a-subdirectory-as-the-root-file-system-at-kernel-startup
Сначала я связался с Kasper Dupont, который сделал исправление для ядра, чтобы добиться этого. Я отправил ему вышеуказанные ссылки, после чего он придумал скрипт, который выглядит лучше, чем тот, что был в первой ссылке.
Вот как я это сделал:
Обратите внимание, что все команды, приведенные ниже, будут выполнены (кроме части меню в 3-м шаге), пока вы находитесь в chroot после как
sudo chroot /precise
запомните монтирование mount / proc, mount / dev, mount / sys, mount / dev / pts
1) Установите chroot в "/ Precision". Это обычный chroot, но вы должны сделать несколько дополнительных вещей, таких как установка ядра, добавление пользователя, добавление uuid раздела в fstab и т. Д. Вы можете следовать этому руководству, чтобы создать debootstrap (chroot). Вам не нужны монтажные детали, потому что вы будете устанавливать их в течение сеанса пользователя. http://www.thegeekstuff.com/2010/01/debootstrap-minimal-debian-ubuntu-installation/ https://help.ubuntu.com/community/DebootstrapChroot
2) Назовите ниже скрипт «rootdir» и переместите его в каталог «/ usr / share / initramfs-tools / hooks» в chroot «/ точный» и сделайте его исполняемым, если нет. И запустите «update-initramfs -u -k all»
3) Подготовьте gent menuentry для загрузки нашего подкаталога. Я добавил пункт меню ниже в файл "/etc/grub.d/40_custom" и обновил grub.
update-grub
Здесь вам нужно передать путь вашего chroot в параметр «rootdir».
menuentry "boot into chroot" {
set root='hd0,msdos6'
linux /precise/boot/vmlinuz-3.8.0-34-generic root=UUID=c2d1b866-a0fd-4214- b79b-11b2af29da4d rootdir=/precise ro quiet splash
initrd /precise/boot/initrd.img-3.8.0-34-generic
}
Мой раздел номер sda6, мой grub видит его как msdos6, вы можете передать его в соответствии с вашими настройками. Обратите внимание, что "/boot/initrd.img-3.8.0-34-generic" и "/boot/vmlinuz-3.8.0-34-generic" являются относительными путями, они указывают на "/ точный / boot / ..."
Во-вторых, обратите внимание на пропуск uuid вашего раздела, в моем случае это sda6 uuid, вы можете найти uuid разделов с помощью blkid.
Наконец, добавили uuid в fstab для автоматического монтирования раздела (в моем случае sda6)
UUID=c2d1b866-a0fd-4214-b79b-11b2af29da4d / ext4 errors=remount-ro 0 1
Что делает скрипт, это исправляет initrd, чтобы позволить ему монтировать подкаталог в соответствии с параметром grub rootdir.
Надеюсь, вы найдете это полезным.
#!/bin/bash
set -e
if [ "$1" = prereqs ]; then
exit 0
fi
. /usr/share/initramfs-tools/hook-functions
DEFAULT_DIR="$(/usr/bin/grub-mkrelpath /)"
cat >"$DESTDIR"/scripts/local-bottom/rootdir <<EOF
#!/bin/sh
PREREQ=""
prereqs()
{
echo "\$PREREQ"
}
case \$1 in
prereqs)
prereqs
exit 0
;;
esac
ROOTDIR="$DEFAULT_DIR"
for x in \$(cat /proc/cmdline); do
case \${x} in
rootdir=*)
ROOTDIR="\${x#rootdir=}"
;;
esac
done
if [ -n "\${ROOTDIR#/}" ] && [ -d "/root/\${ROOTDIR}" ]
then
[ -d /rootfs ] || mkdir -m 0700 /rootfs
mount --move "/root" "/rootfs"
mount --bind "/rootfs/\${ROOTDIR}" "/root"
umount "/rootfs"
fi
EOF
chmod 0755 "$DESTDIR"/scripts/local-bottom/rootdir
РЕДАКТИРОВАТЬ: пункт меню 3. шаг не находится в chroot. Это в пользовательской сессии.