Установка нескольких дистрибутивов Linux в одном разделе

В настоящее время я использую Ubuntu 13.04, elementaryos и Windows 8. Я также хотел бы установить Backtrack для редкого использования. Но я уже вышел за пределы раздела. Итак, можно ли было объединить два раздела и установить все дистрибутивы linux в этот один раздел с общим свопом ?

5
задан 15 January 2014 в 11:03

3 ответа

Это написано так, что оно может быть прочитано полностью, снято, или разделы могут быть пропущены. Тем не менее, я настоятельно рекомендую заглянуть в последний раздел (« вы, возможно, вообще не ограничены четырьмя разделами »), прежде чем решить, что делать, если у вас есть диск в формате GPT или нет. при условии ограничения в 4 раздела.

Несколько «Файловых систем» в одном разделе: ... Может быть

Установка нескольких систем Linux в одном разделе может быть возможной, но потребует серьезной модификации систем, чтобы заставить их обращаться к правильным файлам.

Например, разные ОС обычно используют разные исполняемые файлы для init. Но ожидается, что исполняемый файл для init всегда будет существовать в /sbin/init. Для решения этой и аналогичных проблем вам, по крайней мере, придется заставить системы использовать сильно настроенные аргументы загрузки ядра. Чтобы решить некоторые проблемы, вам, возможно, придется вручную перекомпилировать ядро. Вам также придется иметь дело с изменением местоположений по умолчанию, в которых установлены библиотеки и где их ищут, когда запускается программа, использующая библиотеку, поэтому программы, установленные в одной ОС, не используют разные версии одной и той же библиотеки другой ОС ( что иногда будет несовместимо). Чтобы заставить менеджеры пакетов работать так, как вам нужно, вам, возможно, придется отредактировать их исходный код и перекомпилировать (что означает, что вы не можете обновить их обычным способом).

1140 В принципе, все это должно быть возможно. На практике это может оказаться невозможным: вы, скорее всего, никогда не добьетесь того, чтобы это работало до приемлемого уровня стабильности. Однако, если вы действительно хотите попробовать это, вы можете рассмотреть возможность модификации систем, чтобы они chroot в отдельные chroot-тюрьмы в начале загрузки. Я считаю, что это возможно и может позволить себе необходимую стабильность. Возможно, другие будут публиковать ответы с конкретными решениями.

Совместное использование Swap: довольно просто, но вы можете использовать один или несколько файлов подкачки без разделов подкачки!

Напротив, вы можете и довольно легко заставить разные операционные системы GNU / Linux использовать одинаковые раздел подкачки. Вообще говоря, вы не сможете переходить в спящий режим одной системы и загружаться в другую, но многие люди все равно не используют спящий режим.

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

Но что вы должны на самом деле делать, если вы ограничены 4 разделами ...

... сделать расширенный раздел. Это действует как контейнер для разделов и позволяет эффективно иметь более четырех разделов на диске с таблицей разделов типа, который поддерживает только 4 «основных» раздела .

Для этого загрузитесь с live CD / DVD / USB флешки и запустите GParted. Если у вас уже есть четыре раздела, вам придется сначала удалить один. Это может быть раздел подкачки, как предполагает virtualxtc - при условии, что вы не спите на нем. (Поэтому прежде чем делать это, выключите или перезапустите правильно, а не в спящем режиме.)

Вот несколько скриншотов, иллюстрирующих простую ситуацию, когда создается расширенный раздел. (Конечно, размеры здесь нереалистичны, так как я использовал небольшую флешку для создания скриншотов.) 1117] пробел (либо в горизонтальной полосе, представляющей диск, либо в списке под ним) и нажал Новый .

  • Или (слева) щелкните по нему и выберите «Раздел»> «Новый» в меню.
  • Или (влево) щелкните по нему и нажмите клавишу Вставить .

Это поднимает окно, показанное выше. Нажмите справа от Создать как и выберите Расширенный раздел . (По умолчанию это будет Первичный раздел , а это не то, что вам нужно.)

Сделать расширенный раздел максимального размера.

Теперь внутри расширенного раздела вы можете создавать дополнительные разделы по мере необходимости, минуя ограничение в 4 раздела.

Вы делаете это так же, как вы создаете любой раздел в GParted ... просто внутри расширенного раздела, который действует как контейнер для других разделов. Эти разделы называются «логическими разделами», чтобы отличать их от «первичных разделов», которые не содержатся внутри расширенного раздела.

Когда вы это сделаете, это будет выглядеть примерно так (и затем вы можете щелкнуть галочку на панели инструментов, чтобы выполнить Правка> Применить все операции, чтобы применить ваши изменения.

GParted screenshot showing partitions to be created inside an extended partition

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

Наконец, вы можете на самом деле вообще не следует ограничивать четырьмя разделами!

Как вы знаете, разделы форматируются до их использования. Но сам диск также «форматируется» в некотором смысле. тип данных, которые они могут хранить, и способ хранения данных (обычно файлов). Но диск "отформатирован" с таблицей разделов и другой информацией. Существует более одного вида таблицы разделов. "msdos" «таблица разделов (иногда называемая« msdos disklabel »или« таблица разделов MBR », хотя в других контекстах используется MBR) ограничена четырьмя основными разделами.

Но так Таким образом, другие типы таблиц разделов вообще не ограничены, и вы можете использовать такой тип. Конечно, если GParted уже сказал вам, что вы не можете создать другой первичный раздел, это вряд ли будет так.

Но в наши дни многие жесткие диски, особенно диски с Windows 8 (особенно если они предустановлены) и диски размером более 2 терабайт, поставляются в формате GPT .

GPT (таблица разделов GUID) не ограничивает вас четырьмя разделами; Вы можете сделать больше без каких-либо особых усилий или обходного пути. Так что, если вы еще не пробовали это, я рекомендую сделать это. Иногда люди думают, что они ограничены четырьмя, но на самом деле имеют GPT-диск и вообще не ограничены.

Один из способов выяснить, есть ли у вас таблица разделов «msdos» или другой, менее ограничивающий тип таблицы разделов, - просто попытаться создать пятый раздел (не делая его внутри расширенного раздела - расширенные разделы обычно не возможно, кроме таблицы разделов "msdos").

Другой способ - проверить напрямую в GParted. Для этого нажмите «Просмотр»> «Информация об устройстве». Панель ** Информация об устройстве * появится слева от списка разделов, под горизонтальным представлением диска.

GParted screenshot showing that the partition table is of type msdos

Напротив, если у вас есть GPT-диск, вы увидите «gpt» вместо «msdos». (Существуют и другие типы таблиц разделов, GPT и «msdos» являются наиболее вероятными для ПК.)

GParted screenshot showing that the partition table is of type gpt

Обратите внимание, что, хотя можно превратить диск с таблицей разделов «msdos» в GPT-диск в GParted (с Device> Create Partition Table ...), при этом «сотрут» все данные на диске! ( Вот почему я не рекомендую это как решение вашей проблемы.)

0
ответ дан 15 January 2014 в 11:03

Возможно, я установил несколько дистрибутивов в одном разделе, ниже я объясню, как это сделать. Я немного горжусь тем, что приведу первый пример этого.

Я нашел несколько разных способов превратить 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. Это в пользовательской сессии.

0
ответ дан 15 January 2014 в 11:03

Поскольку Элиа украл расширил мой первоначальный ответ и превратил его в роман book , я расскажу вам пару способов запуска другого дистрибутива Linux внутри вашего существующие разделы без проблем; все они требуют определенного разделения, чтобы программы, скрипты и файлы конфигурации каждого дистрибутива не перекрывались; что традиционно является одной из основных причин использования раздела.

  1. Вы можете запустить новый дистрибутив в виртуальной машине, например в виртуальной коробке.

    Эта настройка уже была рассмотрена в askUbunt .

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

  2. Вы можете записать образ живого компакт-диска прямо на жесткий диск и настроить загрузчик с него.

    Самый простой способ сделать это - через 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>

  3. Возможно, вы захотите создать и расширить виртуальный диск

    Я полагаю, что вариант № 2 ограничивает пространство в iso и, таким образом, затрудняет установку большего количества приложений (хотя вы всегда можете перенести некоторые точки монтирования в не виртуализированное пространство). Я не совсем уверен, как это сделать изнутри Linux, хотя знаю, что это широко распространено в виртуализированных системах (вариант # 1), но я полагаю, что это стандартное поведение, когда использует Wubi для установки Ubuntu внутри Windows .

Совместное использование свопа в дистрибутивах

Обычно это делается по умолчанию во время установки, если установщик видит раздел и помечается соответствующим образом. Если вы используете виртуализацию, вам нужно сделать физические диски прозрачными для своей системы, чтобы воспользоваться этим преимуществом. Для virtualbox это делается путем установки гостевых дополнений . [Тысячу сто сорок одна]

0
ответ дан 15 January 2014 в 11:03

Другие вопросы по тегам:

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