This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Альтернативные методы установки
Данное руководство является сборником альтернативных методов установки 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-диска.
Now simply place the floppy in the floppy drive of the computer, as well as placing the Install CD in the CD-ROM and boot the computer.
The Smart BootManager dialog will appear. Select the CD-ROM and press the Enter (Return) key to boot the Install CD. Once booted proceed with the standard installation instructions.
Более подробную информацию о Smart BootManager можно найти в http://btmgr.sourceforge.net/.
Установка с помощью не Gentoo LiveCD
Введение
The Gentoo developers cannot provide support if something goes wrong with a non-Gentoo LiveCD, as there's no way to fix, troubleshoot, or document every quirk of every LiveCD out there. Only Gentoo LiveCDs are officially supported. Please visit the Gentoo Forums for community help when running into problems with alternative installation media.
Users can boot other LiveCDs besides the Gentoo-provided CDs. Regardless, these LiveCDs provide a functional environment to use while compiling and installing Gentoo. The instructions provided here should work in principle with just about any other LiveCD.
В списке указано очень много LiveCD, но возможно вы захотите попробовать Knoppix. Он имеет полностью графический интерфейс рабочего стола, с офисными приложениями, браузерами и играми, чтобы занять себя. Knoppix доступен только для пользователей x86, так что в зависимости от потребностей пользователя, могут потребоваться другой LiveCD или другой метод установки.
Be aware that if anything is saved in the LiveCD's home directory while waiting for the Gentoo system to install, it will not be available when rebooting into Gentoo. Be sure to save important files on the hard disk or on some other computer!
Инструкции по установке
Boot from the LiveCD. Open a terminal and run su - so the password can be changed. This allows to set the root password for the CD. The sshd daemon can now be configured for remote login if required. Next, creating the /mnt/gentoo mount point is necessary.
root #
mkdir /mnt/gentoo
At this point, the standard install documentation can be picked up at Preparing the Disks. However, when asked to mount the proc system, issue the following command instead:
root #
mount -o bind /proc /mnt/gentoo/proc
When unpacking the stage tarball in Unpacking the stage tarball, be sure to use the following tar command options to ensure that proper group IDs are enforced on the unpacked stage:
root #
tar --numeric-owner --xattrs -xvjpf stage3-*.tar.bz2 -C /mnt/gentoo
If Ubuntu is being used, note that /dev/shm is a symbolic link to /run/shm. It must be bind-mounted or a tmpfs mount has to be set at this location (within the chroot path). To bind-mount the location, run the following command (before chrooting):
root #
mount --rbind /run/shm /mnt/gentoo/run/shm
This is to avoid bug #496328 where Python sees sem_open()
as broken (due to lack of /dev/shm) and Portage seeing that as an error (technically Python configuration would continue and build assuming the POSIX_SEMAPHORES_NOT_ENABLED variable has been enabled but this would lead to a very undesired Python build).
Once ready to chroot into the unpacked stage in Installing Base System, a different chroot command sequence will need to be used. This ensures that the environment variables are properly setup.
Some LiveCDs use a funny environment setup, hence the env -i option for cleaning it up to a reasonable state.
root #
chroot /mnt/gentoo /bin/env -i TERM=$TERM /bin/bash
root #
env-update
root #
source /etc/profile
root #
export PS1="(chroot) $PS1"
Finally, know that some Portage FEATURES may not work in the LiveCD. Especially watch out for userpriv
and usersandbox
values. If there are errors, try disabling some or all of the optional FEATURES.
Diskless install using PXE and kernel/initrd/squashfs from the LiveCD
This method is easier to configure than PXE boot based on iSCSI or NFS. Multiple machines can boot from the same set of images distributed via TFTP and can be easily extended to also work over HTTP or other protocol.
Some other distributions including Fedora already distribute images needed to bootstrap a live or installation CD. With Gentoo, this is not the case. Instead, users need to
- Extract kernel, initrd and squashfs from the live CD.
- Patch initrd contents.
- Merge squashfs into initrd.
Only then can a PXE based boot loader be configured that will load the images and boot into a live system.
Save the following script, make it executable and put its directory value into the PATH variable (or follow the documented steps manually).
#!/bin/bash -xe tftproot="$1" image="$2" tmp="./tmp" test -z "$tftproot" -o -z "$image" && echo "Usage: $0 <tftproot> <gentoo-iso>" >&2 && 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 "$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" # prepare boot data grub2-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 "$tmp"/{kernel,initrd} "$tftproot/boot" # cleanup rm -rf "$tmp"
Download the minimal installation CD. Install net-ftp/tftp-hpa, make sure it serves /tftproot and start it.
Запустите скрипт с соответствующими параметрами.
root #
gentoo-pxe-boot /tftproot install-amd64-minimal-20141204.iso
Now the TFTP boot service is ready, so the next step is to configure a DHCP service. Setting up a DHCP server on the same machine is possible - just make sure that the booted machines are connected to it. Or just tweak the configuration of an existing router.
Ниже находится пример конфигурация сервиса 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
Diskless install using PXE boot and NFS
Необходимые требования
PXE (Preboot eXecution Environment) is a method for booting computers over a PXE-capable network interface (and using a PXE-supporting BIOS). In case the system does not support PXE boot from the network interface or BIOS, PXE can also be used as a boot method from block devices (like CDs or USBs). In such cases, a minimal boot environment mimics the PXE supporting network card (see also Etherboot/gPXE).
Базовая настройка сервера
Create directories: The first thing to do is to create the directories where the diskless system will be stored. Create a directory called /diskless which houses a directory for each diskless client. For the remainder of this howto, the client that is being worked on will be called 'eta'.
root #
mkdir -p /diskless/eta
DHCP and TFTP setup: The client will get boot information using DHCP and download all the required files using TFTP.
For dhcpd, just run emerge dhcp (or any other DHCP server of choice). Make sure that the correct interface is selected in /etc/conf.d/dhcpd, and configure it accordingly. Then, add the following on /etc/dhcp/dhcpd.conf.
This provides a static IP address for the client and the path of a PXE boot image, here pxegrub. The MAC address of the ethernet card of the client in the example has to be replaced with the correct MAC address, as well as the directory where the client files will be stored.
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"; }
Next configure the interface in /etc/conf.d/net so that it doesn't get cleared at bootup. See /usr/share/doc/openrc-*/net.example.bz2 for more information.
/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 # For the nfsroot option, the IP address is the one of the server and the directory is the one where the diskless client files are located (on the server).
NFS is quite easy to configure. The only thing that has to be done is to add a line on the /etc/exports config file:
/etc/exports
/diskless/eta eta(rw,sync,no_root_squash)
One important thing to do now is to modify the /etc/hosts file to fit requirements.
/etc/hosts
127.0.0.1 localhost 192.168.1.10 eta.example.com eta 192.168.1.20 sigma.example.com sigma
Creating the system on the server
A next step is to reboot the server with a Gentoo installation CD (although experienced administrators can continue without if they are sufficiently versed in Gentoo installations). Follow the standard install procedure as explained in the Gentoo Handbook BUT with the following differences: when mounting the file system, execute the next step (where sdaX is the partition where the /diskless directory was created).
root #
mount /dev/sdaX /mnt/gentoo
Mounting any other partition is not needed as all of the files will reside in the /diskless/eta directory.
This example uses a stage3 tarball. Mount /proc to the diskless directory and chroot into it to continue with the install. Then follow the installation manual until kernel configuration.
Be very careful when extracting the stage tarball to its destination, so as to not end up extracting over an existing installation.
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
When doing the make menuconfig of the kernel configuration, don't forget to enable the following options with the others recommended into the install guide.
'"`UNIQ--pre-0000000D-QINU`"'
Save the kernel in the chrooted / (not in /boot) according to the pxegrub setting defined earlier. Next configure the diskless client's /etc/fstab.
/etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
Now to prevent the client from running a filesystem check:
root #
touch /fastboot
root #
echo "touch /fastboot" >> /etc/conf.d/local.start
Install net-fs/nfs-utils since the client will heavily depend on it:
root #
emerge --ask net-fs/nfs-utils
Do not install another bootloader because there is already one - pxegrub. Simply finish the install and restart the server. Start the services that are needed to boot the new client: DHCP, TFTPD, and NFS.
root #
service dhcp start
root #
service in.tftpd start
root #
service nfs start
Загрузка нового клиента
For the new client to boot properly, the BIOS and the network card need to be configured to use PXE as the first boot method - before CD-ROM or floppy. For help with this consult the hardware manuals or manufacturers website. The network card should get an IP address using DHCP and download the GRUB PXE image using TFTP. Then, a nice black and white GRUB bootmenu should be displayed from where users can select the kernel to boot and press the Enter (Return) key. If everything is okay the kernel should boot, mount the root filesystem using NFS and provide a login prompt. Enjoy.
Установка Gentoo из уже установленного дистрибутива Linux
Необходимые требования
In order to install Gentoo from an existing Linux distribution it needs to have the chroot command installed, and have a copy of the Gentoo installation or ISO that's desired to install. A network connection is highly recommended as otherwise the installation can only work with the files available in the installation media. By the way, a tarball is just a file ending in .tbz or .tar.gz. Let's get started!
Общий обзор
First allocate a partition to Gentoo by resizing an existing Linux partition, mount the partition, untar the tarball to the partition that is mounted, chroot inside the pseudo-system and start building. Once the bootstrap process is done, do some final configuration on the system so as to make sure it boots, then reboot and use Gentoo.
Как создать пространство для Gentoo?
The root partition is the filesystem mounted under /. The first example shows the output of mount on a system. The second example uses df (disk free) to see how much space there is left and how it will be resized. Note that resizing the root partition is not mandatory! Anything else supported by the resizer can be resized, but let's talk about that later.
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.