Альтернативные методы установки

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Installation alternatives and the translation is 90% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎italiano • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Данное руководство является сборником альтернативных методов установки Gentoo, для людей с особенными требованиями к установке, например, отсутствующий CD-ROM, либо компьютер, который не может загружаться с CD.

Об этом руководстве

Если стандартная установка загрузись-с-CD не работает (её невозможно использовать, либо просто не нравится), то здесь можно найти некоторые подсказки. Данное руководство дает список альтернативных методов установки Gentoo для тех, кому они нужны. Либо, если так больше нравится, это место, где можно разместить нестандартные методы установки. Если знаете метод установки, который считаете полезным, либо нашли удивительный метод установки Gentoo, не стесняйтесь написать что-нибудь о нем здесь, в этой статье.

Загрузка с установочного CD с Smart BootManager

Скачайте Smart BootManager с http://btmgr.sourceforge.net/download.html. Доступен исходный код и бинарный формат под Linux, а также .exe версия под Windows, также как и множество языковых пакетов. Однако в данное время самым лучшим методом будет использование бинарного формата, так как исходные коды не компилируются новыми версиями NASM.

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

user $sbminst --help
sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
  
   -t theme       выбирает используемую тему, выбирать можно из:
                    us = English theme       de = German theme
                    hu = Hungarian theme     zh = Chinese theme
                    ru = Russian theme       cz = Czech theme
                    es = Spanish theme       fr = French theme
                    pt = Portuguese theme
  
   -d drv         выбирает диск, куда вы хотите установить Smart BootManager;
                  для Linux:
                    /dev/fd0 это первый floppy-диск,
                    /dev/hda это первый IDE жесткий диск.
                    /dev/sda это первый SCSI жесткий диск.
                  для DOS:
                    0   это первый floppy-диск
                    128 это первый жесткий диск;
  
   -c             заблокировать возможность загрузки с CD-ROM;
  
   -b backup_file сохранить данные, которые будут перезаписаны
                  для будущего удаления программы;
  
   -u backup_file удалить Smart BootManager, опция используется без других опций;
  
   -y             не спрашивать никаких вопросов и не выдавать предупреждений

Для создания загрузочной дискеты используйте sbminst:

root #sbminst -t us -d /dev/fd0
Заметка
Замените fd0 на необходимое имя устройства для floppy-диска.

Теперь просто вставьте дискету в дисковод для гибких дисков так же, как Установочный CD в привод, и запустите компьютер.

Появится диалог Smart BootManager. Выберете CD-ROM и нажмите клавишу Enter (Return) для загрузки Установочного CD. После загрузки следуйте стандартным инструкциям по установке.

Более подробную информацию о Smart BootManager можно найти в http://btmgr.sourceforge.net/.

Установка с помощью не Gentoo LiveCD

Введение

Важно
Разработчики Gentoo не смогут предоставить поддержку, если что-то пойдёт не так не с Gentoo LiveCD, поскольку нет возможности исправить, диагностировать и документировать каждую странность каждого LiveCD. Официально поддерживаются только LiveCD Gentoo. Пожалуйста, посетите Форумы Gentoo для получения поддержки от сообщества при возникновении проблем с альтернативными установочными носителями.

Пользователи могут загружать другие LiveCD помимо тех, которые предоставлены Gentoo. Вне зависимости от этого, LiveCD предоставляет функциональную среду для использования во время компиляции и установки Gentoo. Приведённые здесь инструкции в принципе должны работать с практически любым другим LiveCD.

В списке указано очень много LiveCD, но возможно вы захотите попробовать Knoppix. Он имеет полностью графический интерфейс рабочего стола, с офисными приложениями, браузерами и играми, чтобы занять себя. Knoppix доступен только для пользователей x86, так что в зависимости от потребностей пользователя, могут потребоваться другой LiveCD или другой метод установки.

Предупреждение
Имейте в виду, что если что-то сохранено в домашней папке пользователя LiveCD во время ожидания установки системы Gentoo, то это не будет доступно после перезагрузки в Gentoo. Убедитесь, что сохранили важные файлы на жёсткий диск или на какой-нибудь другой компьютер!

Инструкции по установке

Загрузитесь с LiveCD. Откройте терминал и выполните su -, чтобы можно было изменить пароль. Это позволит установить root пароль для CD. Теперь, если потребуется, sshd может быть настроен для удалённого входа. После этого, создайте точку монтирования /mnt/gentoo – это необходимо.

root #mkdir /mnt/gentoo

С этого момента может быть использовано стандартное руководство по установке – Подготовка дисков. Однако, когда будет нужно примонтировать файловую систему proc, выполните следующую команду:

root #mount -o bind /proc /mnt/gentoo/proc

При распаковке архива stage в Распаковке архива stage убедитесь, что используете следующие опции команды tar, чтобы в распакованном stage были применены правильные ID группы:

root #tar --numeric-owner --xattrs -xvjpf stage3-*.tar.bz2 -C /mnt/gentoo

Если используется Ubuntu, имейте в виду, что /dev/shm – символьная ссылка на /run/shm. Он должен быть связано смонтирован, или необходимо настроить tmpfs в этом расположении (в рамках chroot). Для связанного монтирования пути, выполните следующую команду (перед выполнением chroot):

root #mount --rbind /run/shm /mnt/gentoo/run/shm

Это нужно, чтобы избежать bug #496328, когда Python определяет sem_open() как повреждённую (ввиду отсутствия /dev/shm), и Portage считает это ошибкой (технически, конфигурирование Python будет продолжено и построено, предполагая, что включена переменная POSIX_SEMAPHORES_NOT_ENABLED, но это приведёт к очень неблагоприятной сборке Python).

Когда всё будет готово к выполнению chroot в распакованный stage в Установке базовой системы Gentoo, придётся использовать другую последовательность команд для chroot. Это обеспечивает правильность установки переменных среды.

Заметка
Некоторые LiveCD используют забавные настройки среды, поэтому выполните env -i для её очистки в приемлемое состояние.
root #chroot /mnt/gentoo /bin/env -i TERM=$TERM /bin/bash
root #env-update
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Наконец, учитывайте, что некоторые Portage FEATURES могут не работать в LiveCD. Особенно остерегайтесь значений userpriv и usersandbox. Если случаются ошибки, попробуйте отключить некоторые или все опциональные FEATURES.

Бездисковая установка с использованием PXE и ядра/initrd/squashfs с LiveCD

Данный способ проще в настройке, чем PXE-загрузка на основе iSCSI или NFS. Множество машин может загружаться с одинакового набора образов, распространяемых через TFTP, и загрузка запросто может быть расширена для работы по HTTP или по другим протоколам.

Наличие хорошего роутера или роутера, способного запускать такие прошивки с открытым исходным кодом как LEDE (преемник OpenWRT), – один из способов централизировать TFTP и DHCP. Получение прошивки онлайн может оказаться тяжёлым боем в зависимости от вашего опыта.

Некоторые другие дистрибутивы, включая Fedora, уже распространяют образы, необходимые для создания LiveCD или установочного CD. С Gentoo это не так. Вместо этого, пользователи должны

  1. Извлечь ядро, initrd и squashfs из live CD.
  2. Применить патч к содержимому initrd.
  3. Объединить squashfs с initrd.

Только после этого PXE загрузчик может быть настроен на загрузку образов и запуск системы.

Существуют различные виды PXE, но всем им понадобятся файлы ядра и initrd, поэтому давайте создадим их. Скачайте минимальный установочный CD. Затем выполните следующий сценарий с правами root. В указанном каталоге будут созданы новые файлы initrd и kernel.


Код pxe-craft-initrd-kernel
#!/bin/bash -xe
# Create kernel and initrd files from a Gentoo LiveCD (DVD?) for PXE boot.

print-usage() {
  echo "Usage: $0 <output-dir> <gentoo-iso>" >&2
}

# Example Invocation
# sudo ./gen-pxe-initrd-kernel pxe-boot-files ~/Downloads/install-amd64-minimal-20171228T214501Z.iso

outdir="$1"
image="$2"
tmp="$outdir/tmp"

if [ $(id -u) -ne "0" ]; then
  echo "You must run as root or with sudo. This is necessary for the loop mount" && 
  print-usage &&
  exit 2
fi

test -z "$outdir" -o -z "$image" && print-usage && exit 1
test -e "$tmp" && echo "Temporary path '$tmp' already exists." >&2 && exit 1

iso="$tmp/iso"
initrd="$tmp/initrd.dir"

# prepare directories
mkdir -p "$outdir" "$tmp" "$iso" "$initrd/mnt/cdrom"

# extract files from ISO image
mount -o ro,loop "$image" "$iso"
cp "$iso"/{image.squashfs,isolinux/gentoo,isolinux/gentoo.igz} "$tmp"
umount "$iso"

# rename kernel
mv "$tmp/gentoo" "$tmp/kernel"

# patch initramfs and add squashfs to it
xz -dc "$tmp/gentoo.igz" | ( cd "$initrd" && cpio -idv )
patch -d "$initrd" -p0 <<'EOF'
--- init.orig	2016-01-02 00:00:00.000000000 +0100
+++ init	2016-01-02 00:00:00.000000000 +0100
@@ -455,9 +455,9 @@
 		CHROOT=${NEW_ROOT}
 	fi
 
-	if [ /dev/nfs != "$REAL_ROOT" ] && [ sgimips != "$LOOPTYPE" ] && [ 1 != "$aufs" ]; then
-		bootstrapCD
-	fi
+#	if [ /dev/nfs != "$REAL_ROOT" ] && [ sgimips != "$LOOPTYPE" ] && [ 1 != "$aufs" ]; then
+#		bootstrapCD
+#	fi
 
 	if [ "${REAL_ROOT}" = '' ]
 	then
@@ -591,7 +591,7 @@
 		else
 			bad_msg "Block device ${REAL_ROOT} is not a valid root device..."
 			REAL_ROOT=""
-			got_good_root=0
+			got_good_root=1
 		fi
 	done
 
@@ -670,7 +670,7 @@
 	[ -z "${LOOP}" ] && find_loop
 	[ -z "${LOOPTYPE}" ] && find_looptype
 
-	cache_cd_contents
+	#cache_cd_contents
 
 	# If encrypted, find key and mount, otherwise mount as usual
 	if [ -n "${CRYPT_ROOT}" ]
EOF
cp "$tmp/image.squashfs" "$initrd/mnt/cdrom"
( cd "$initrd" && find . -print | cpio -o -H newc | gzip -9 -c - ) > "$tmp/initrd"

mv "$tmp"/{kernel,initrd} "$outdir"
rm -rf "$tmp"


Если вы знаете, что делаете, то вы свободны! Наслаждайтесь Gentoo на PXE. В противном случае, смотрите следующие инструкции в зависимости от вида PXE, который вы используете.

TFTP

Это будет необходимо в связке с DHCP сервером для многих ПК с PXE загрузкой. Но помните, что загрузку iPXE можно использовать без TFTP или DHCP сервера! См. ipxe.org для получения сведений о встраивании сценариев, поэтапной и ручной загрузке. У TFTP загрузки всё же есть такие преимущества как широкий спектр поддерживаемых устройств, поэтому приступим к использованию TFTP!

Установите net-ftp/tftp-hpa, убедитесь, что он предоставляет /tftproot и запустите его.

Теперь загрузочный сервис TFTP готов, поэтому следующим шагом будет настройка сервиса DHCP.

DHCP

Настройка DHCP сервера на одинаковых устройствах возможна – просто убедитесь, что запущенные устройства подключены к нему. Или просто измените настройки существующего роутера.

Ниже находится пример конфигурации сервиса DHCP для OpenWRT:

Файл /etc/config/dhcp
config boot linux                   
        option filename boot/grub/i386-pc/core.0
        option servername boot
        option serveraddress 84.246.161.86

С этого момента инструкции меняются в зависимости от того, какой у вас PXE (т.е. GRUB, iPXE).


GRUB

После выполнения сценария pxe-craft-initrd-kernel, выполните следующий pxe-install-grub, чтобы поместить соответствующие файлы в корневой каталог tftp.

Код pxe-install-grub
#!/bin/bash -xe
# prepare boot data
 
print-usage() {
  echo "Usage: $0 -i [initrd-file] -k [kernel-file] <tftproot>" >&2
}
 
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
 
case $key in
    -i|--initrd)
    initrd="$2"
    shift # past argument
    shift # past value
    ;;
    -k|--kernel)
    kernel="$2"
    shift # past argument
    shift # past value
    ;;
    *)    # unknown option
    POSITIONAL+=("$1") # save it in an array for later
    shift # past argument
    ;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
 
tftproot="$1"
 
test ! -e "$initrd" && echo "initrd Not found" && print-usage && exit 1
test ! -e "$kernel" && echo "kernel Not found" && print-usage && exit 1
test -z "$tftproot" && echo "tftproot not specified" && print-usage && exit 1
                                                                          
echo "initrd:$initrd"
echo "kernel:$kernel"
echo "tftproot:$tftproot"
 
grub-mknetdir -v --net-directory="$tftproot"
cat > "$tftproot/boot/grub/grub.cfg" <<'EOF'
menuentry "Gentoo Live" {
    linux /boot/kernel root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/
    initrd /boot/initrd
}
EOF
 
cp "$kernel" "$initrd" "$tftproot/boot"


iPXE

Здесь приведён соответствующий раздел для iPXE.

Код gentoo-pxe-boot
#!ipxe                                                                    
menu THRONG OF BAZ                                                       
item --gap LAN
item gentoo Gentoo x86_64 minimal
 
:gentoo                                                                   
set g http://baz.com/ipxe/gentoo                                        
kernel ${g}/kernel root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/
initrd ${g}/initrd                                                        
boot

Бездисковая установка с использованием PXE загрузки и NFS

Необходимые требования

PXE (Preboot eXecution Environment) ­– это способ загрузки компьютеров через PXE-совместимый сетевой интерфейс (и с использованием BIOS, поддерживающей PXE). В случае если система не поддерживает PXE загрузку на уровне сетевого интерфейса или BIOS, PXE всё равно может быть использован посредством загрузки с блочных устройств (таких как CD или USB). В таких случаях минимальная загрузочная среда имитирует сетевую карту, поддерживающую PXE (см. также Etherboot/gPXE).

Базовая настройка сервера

Создайте каталоги: первое, что нужно сделать, – это создать каталоги, в которых будет хранится бездисковая система. Создайте папку с названием /diskless, в которой разместятся каталоги для каждого бездискового клиента. В оставшейся части руководства клиент, с которым мы работаем, будет называться 'eta'.

root #mkdir -p /diskless/eta

Настройка DHCP и TFTP: клиент будет получать загрузочную информацию через DHCP и загружать все необходимые файлы по TFTP.

Для dhcpd просто выполните emerge dhcp (или любой другой DHCP сервер по выбору). Убедитесь, что в /etc/conf.d/dhcpd выбран правильный интерфейс и настройте его. Затем добавьте следующее в /etc/dhcp/dhcpd.conf.

Заметка
Это предоставит клиенту статический IP-адрес и путь к загрузочному образу PXE, в данном случае pxegrub. MAC-адрес сетевой карты клиента из примера необходимо заменить на правильный MAC-адрес так же, как и папку, в которой будут сохранены файлы клиента.
Файл dhcpd.conf
option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}

Затем, настройте интерфейс в /etc/conf.d/net так, чтобы от не был очищен во время загрузки. Подробнее см. /usr/share/doc/openrc-*/net.example.bz2.

Файл /etc/conf.d/netУбедимся, что интерфейс (здесь, в качестве примера eth0) не будет перенастроен во время загрузки
config_eth0="noop"

Для TFTP, установите пакет net-ftp/tftp-hpa. В файле /etc/conf.d/in.tftpd вставьте следующее:

Файл in.tftpd
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

Установите GRUB:

root #emerge --ask sys-boot/grub

После установки GRUB, создайте загрузочный каталог для бездисковых клиентов:

root #grub2-mknetdir --net-directory=/diskless/eta

Original way was to copy the PXE image to the diskless client but the path does not seem to exit anymore.

root #mkdir /diskless/eta/boot
root #cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub

Далее, отредактируйте конфигурационный файл grub.lst.

root #nano -w /diskless/eta/boot/grub.lst
Файл grub.lst
default 0
timeout 30
  
title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta
  
# Для опции nfsroot IP-адрес – это адрес сервера, а
папка – это папка, в которой расположены файлы бездискового клиента (на сервере).

NFS крайне прост в настройке. Всё, что нужно сделать, – это добавить строку в файл /etc/exports:

Файл /etc/exports
/diskless/eta eta(rw,sync,no_root_squash)

Сейчас важно сделать одну вещь ­– изменить файл /etc/hosts для соответствия требованиям.

Файл /etc/hosts
127.0.0.1 localhost
192.168.1.10 eta.example.com eta
192.168.1.20 sigma.example.com sigma

Создание системы на сервере

Следующий шаг – это перезагрузить сервер с установочного CD Gentoo (хотя опытные администраторы могут продолжать и без этого, если они достаточно хорошо разбираются в установке Gentoo). Следуйте стандартным инструкциям по установке, описанным в Gentoo Handbook, НО с некоторыми отличиями: при монтировании файловой системы, выполните следующий шаг (sdaX – это раздел, в котором создан каталог /diskless).

root #mount /dev/sdaX /mnt/gentoo

Монтирование любых других разделов необязательно, поскольку все файлы будут находиться в каталоге /diskless/eta.

Данный пример использует архив stage3. Примонтируйте /proc к каталогу diskless и выполните chroot, чтобы продолжить установку. Далее следуйте руководству по установке до настройки ядра.

Предупреждение
Будьте внимательны при распаковке stage-архива, чтобы не закончить её поверх существующей установки.
root #cd /mnt/gentoo/diskless/eta/
root #tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2
root #mount -t proc /proc /mnt/gentoo/diskless/eta/proc
root #cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
root #chroot /mnt/gentoo/diskless/eta/ /bin/bash
root #env-update
root #source /etc/profile

Во время настройки ядра в make menuconfig не забудьте включить следующие опции вместе с остальными рекомендуемыми в руководстве по установке опциями.

Ядро Опции, необходимые для бездисковых установок
- Поддержка устройства сетевой карты
(В ядре, *не* в модуле!)
  
-*- Networking support --->  
  Networking options --->
    [*] TCP/IP networking
    [*] IP: kernel level autoconfiguration
    [*] IP: DHCP support
    [*] IP: BOOTP support
  
File systems --->
  [*] Network File Systems --->
    <*> NFS file system support
    [*] Provide NFSv3 client support
    [*] Root file system on NFS

Сохраните ядро в корне chroot (/) (не в /boot) в соответствии с определённой ранее настройкой pxegrub. Далее настройте /etc/fstab бездискового клиента.

Файл /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0

Теперь, чтобы предотвратить клиента от запуска проверки файловой системы:

root #touch /fastboot
root #echo "touch /fastboot" >> /etc/conf.d/local.start

Установите net-fs/nfs-utils, поскольку клиент будет сильно от них зависеть:

root #emerge --ask net-fs/nfs-utils

Не устанавливайте другой загрузчик, потому что он уже есть – pxegrub. Просто завершите установку и перезапустите сервер. Запустите сервисы, которые необходимы для загрузки нового клиента: DHCP, TFTPD и NFS.

root #service dhcp start
root #service in.tftpd start
root #service nfs start

Загрузка нового клиента

Для того чтобы новый клиент загрузился должным образом, BIOS и сетевая карта должны быть настроены для использования PXE в качестве первого метода загрузки: перед CD-ROM или дискетой. За помощью в этом обратитесь к руководствам оборудования или сайту производителя. Сетевая карта должна получить IP-адрес по DHCP и загрузить образ GRUB PXE по TFTP. Затем должно появиться красивое чёрно-белое загрузочное меню GRUB, в котором пользователи могут выбрать ядро для загрузки и нажать клавишу Enter (Ввод). Если всё хорошо, ядро должно загрузиться, примонтировать файловую систему по NFS, и предоставить запрос входа в систему. Наслаждайтесь.

Установка Gentoo из уже установленного дистрибутива Linux

Необходимые требования

Чтобы установить Gentoo из существующего дистрибутива Linux, в последнем должна быть установлена команда chroot и потребуется копия установленного Gentoo или предназначенный для установки ISO. Сетевое соединение крайне рекомендуется, поскольку в противном случае можно будет работать только с файлами, доступными на установочном носителе. Кстати, tarball ­– это просто файл, заканчивающийся на .tbz или .tar.gz. Давайте начнём!

Общий обзор

Первым делом, выделите раздел для Gentoo изменением размера существующего раздела Linux, примонтируйте его, распакуйте tar-архив на примонтированный раздел, выполните chroot в псевдосистему и начните установку. Когда закончится процесс первоначальной установки, осуществите некоторые заключительные настройки системы, чтобы быть уверенными в том, что система загрузится, затем перезапустите Gentoo.

Как создать пространство для Gentoo?

Корневой раздел ­– это файловая система, примонтированная к /. Первый пример показывает вывод mount в системе. Второй пример использует df (disk free), чтобы узнать, сколько места осталось и насколько изменять размер. Заметьте, что изменение размера корневого раздела необязательно! Размер чего-нибудь другого из поддерживаемого тоже можно изменить, но об этом позже.

root #mount
/dev/sdb2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
root #df -h
Filesystem           Size Used Avail Use% Mounted on
/dev/sdb2            4.0G 1.9G  2.4G  82% /
none                  38M    0   38M   0% /dev/shm

As can be seen, the partition mounted as / named /dev/sdb2 has 2.4 GB free. In this case, it was decided to be resized as to leave 400 MB of free space, therefore allocating 2 GB for Gentoo. Not bad, it could have quite some stuff installed. However, 1 GB is deemed enough for most users. So now partition this thing!

Building parted to resize partition

Предупреждение
This section is outdated and will be removed when the older parted versions have left the Gentoo Portage tree. The ability to resize partitions has been removed from parted, as explained here.

sys-block/parted is extremely useful for resizing partitions. It is included on the minimal installation CD.

Заметка
There are other tools for doing resize of partitions as well, but an elaborate description of these tools is outside the scope of this guide.

Look up on that page the type of file system to resize and see if parted can do it. If not: tough luck, some partitions might need to be destroyed to make space for Gentoo, and reinstall back. Go ahead by downloading the software and install it. In the next step, a problem arises. The Linux root partition needs to be resized, therefore a floppy disk with a minimal Linux system must be booted and to use a previously-compiled parted copied to a diskette in order to resize /. If the partition can be unmounted while still running in Linux then the following steps are not needed. Just compile parted and run it on a chosen unmounted partition to resize. Here's how it was done on this system.

Важно
Make sure that the operations that are required for partitioning are supported by parted!

Get the mininux boot/root disk (a 2.4-powered mini Linux distribution on a floppy - free of charge) from http://mininux.free.fr/uk/, create a floppy as suggested in the Documentation that accompanies the software package and insert a new floppy in the drive for the next step.

Заметка
Note again that Linux is synonym of "There's one more way to do it". The objective is to run parted on an unmounted partition so it can do its work. A boot/root diskset other than mininux can be used. This step might not even be needed to do at all: there may only be the need to umount the filesystem to repartition in the Linux session and run parted on it.
root #mkfs.minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912

Proceed with the build of parted. Download and untar the utility, and cd into the corresponding directory. Now run the following set of commands to build the utility and copy it to the floppy disk.

root #mkdir /floppy
root #mount -t minix /dev/fd0 /floppy
root #export CFLAGS="-O3 -pipe -fomit-frame-pointer -static"
root #./configure
root #make
root #cp parted/parted /floppy
root #umount /floppy

Time to reboot and resize the partition. Do this only after taking a quick look at the parted documentation on the GNU website. The resize should take under 30 minutes for the largest hard-drives, be patient. Reboot the system with the mininux boot disk (just pop it inside), and once logged in, switch the disk in the drive with the utility disk that was created above and type mount /dev/fd0 /floppy to have parted under /floppy. Run parted to be able to resize the partition. Once this lengthy process is done, continue with installing Gentoo. Reboot back into the old Linux system for now. The drive to operate on is the drive containing the partition that is going to be resized. For example, if the partition to be resized is /dev/sda3, the drive is /dev/sda.

root #mount /dev/fd0 /floppy
root #cd /floppy
root #./parted <drive>
(parted)print
Disk geometry for /dev/sdb: 0.000-9787.148 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031   2953.125  primary   ntfs
3       2953.125   3133.265  primary   linux-swap
2       3133.266   5633.085  primary   ext3
4       5633.086   9787.148  extended
5       5633.117   6633.210  logical
6       6633.242   9787.148  logical   ext3
(parted)help resize
(parted)  help resize 
  resize MINOR START END        resize filesystem on partition MINOR
  
        MINOR is the partition number used by Linux.  On msdos disk labels, the
        primary partitions number from 1-4, and logical partitions are 5
        onwards.
        START and END are in megabytes
(parted)resize 2 3133.266 4000.000
Важно
Be patient! The computer is working! Just look at the hard drive LED on the case to see its activity. This should take between 2 and 30 minutes.

Once the resize has finished, boot back into the old Linux as described. Then go to The Gentoo Handbook: Preparing the Disks and follow the instructions. When chrooting, use the following command to flush the environment:

root #env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash
root #/usr/sbin/env-update
root #source /etc/profile

Наслаждайтесь!


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Gerald Normandin Jr., Travis Tilley, Oleg Raisky, Alex Garbutt, Alexandre Georges, Magnus Backanda, Faust A. Tanasescu, Daniel Ahlberg, Ken Nowack, Tiemo Kieft, Benny Chuang, Jonathan Smith, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.