Cómo construir un sistema operativo Linux a través de chroot
Al instalar otro sistema operativo de código abierto en un sistema operativo Linux existente, normalmente creamos primero el entorno básico chroot del nuevo sistema operativo y luego realizamos el chroot en el entorno del sistema operativo recién creado para su instalación y configuración. Este método de construir e instalar un sistema operativo debería ser más importante para que aprendamos e investiguemos la estructura y los principios del sistema operativo. Este artículo brinda un ejemplo simple, basado en Fedora Core 5.0, para construir Slackware 10.2 a través de chroot
1. El propósito y uso del método chroot para instalar el sistema operativo
El chroot; La herramienta es Linux. Todos los sistemas operativos tienen herramientas. En la superficie, chroot significa ir de una raíz a otra. Instalar otro sistema operativo en un sistema operativo Linux es aprovechar esta característica de chroot. Primero cree el entorno básico para que se ejecute chroot, luego haga chroot al nuevo /root y luego use las herramientas de administración de paquetes correspondientes para instalar otros paquetes de software del nuevo sistema operativo;
Casi todos los sistemas operativos de código abierto Todos se pueden instalar usando el método chroot. Por ejemplo, Gentoo, LFS y CRUX comúnmente usan chroot. Instalar el sistema operativo a través de chroot es como apilar bloques, instalando el sistema operativo pieza por pieza, por lo que los fanáticos de Gentoo y LFS tienen una sensación especial. de logro. Ah, también se puede decir que el sistema operativo está completamente hecho a mano y la sensación de logro es evidente;
Área especial del software Tianji seleccionada
Área de Windows Vista, Área POPO, Área QQ, QQ Zona de tabla de registro de colgar Optimización de Windows
Videotutorial Flash MX Videotutorial de Photoshop Diseño web Videotutorial Procesamiento de fotografías Cuarto oscuro digital
Tutorial de demostración de animación PPT Animación en Excel Colección de tutoriales Tutorial de demostración de animación de palabras Zona de Google
Zona de caballo de Troya Conocimiento de hackers Zona de tutorial Zona de aplicaciones de firewall Comprensión de Web2.0
Zona de desarrollo de API de Windows Zona de programación de redes Zona de programación de bases de datos VB Procesamiento de imágenes y Programación Multimedia
A través de chroot ¿Qué podemos aprender al instalar un sistema operativo? El objetivo principal es conocer la cantidad mínima de componentes necesarios para que un sistema operativo se "mueva" y comprender los "componentes" básicos necesarios para un sistema operativo. Esto es útil para desarrollar y comprender su propio sistema operativo basado en Linux. la composición y los principios del sistema operativo son más importantes;
2. El entorno del sistema requerido para instalar el sistema operativo a través del método chroot
El entorno más fundamental es tener un Linux. que puede ejecutarse en su máquina o en un LiveCD;
3. El proceso de instalación del sistema operativo a través de chroot
Se requieren los siguientes procesos:
2. Cree el sistema de archivos
3.
4. Instale el sistema básico; principalmente descomprimiendo el paquete de software. Para lograr;
5. Modifique el archivo de configuración del nuevo sistema, como /etc/fstab ubicado en el nuevo sistema.
p>6. Resolver dependencias e instalar herramientas de administración de paquetes de software;
p>
Siete, ingresar al nuevo sistema a través de chroot;
Ocho. a través de la herramienta de administración de paquetes de software del nuevo sistema;
Nueve. Tratar problemas de arranque, por ejemplo, arranque de GRUB, etc.
4. p>
Un sistema operativo se puede instalar en un disco duro físico o en un archivo de imagen. Todos pueden entenderlo cuando se instala en un disco duro físico.
¿Cómo se entiende la instalación en un archivo de imagen? Por ejemplo, al instalar el sistema operativo virtualmente a través de VMWARE, ¿se instala en un archivo? Sí, tiene casi el mismo significado; además, la partición de intercambio también puede ser un archivo. Otro ejemplo es el sistema operativo virtual Xen, que se puede instalar en una imagen de archivo;
Un sistema operativo instalado en un archivo de imagen se puede usar para aprender, acceder a través de chroot, virtualizarse a través de xen, etc. También se puede convertir en un formato similar a file.iso para almacenar archivos, etc.;
5. Breve introducción a Fedora Instale Slackware 10.2 en Fedora Core 5.0;
Este ejemplo es para instalar Slackware 10.2 a través de chroot en Fedora Core 5.0. El medio de destino de la instalación se divide en dos tipos, uno es un disco duro físico; el otro es un archivo de imagen.
Lo que está instalado en el disco duro físico se puede ejecutar de forma independiente a través de un administrador de arranque como GRUB o LILO, y se puede acceder a lo que está instalado en el archivo de imagen a través de chroot o ejecutarlo virtualmente mediante Xen
5.1 Instalar; Slackware 10.2 a un disco duro a través de chroot en la partición física;
Este proceso parece un poco redundante, pero es bueno anotarlo. Esto es común a la mayoría de las instalaciones de sistemas operativos de código abierto, y lo es. también el método más original y efectivo, es decir Instalar otro sistema operativo en un entorno de sistema operativo existente;
Montar el sistema de archivos es montarlo mediante montaje;
Ejemplo:
Por ejemplo, mi disco duro /dev/hda5 es una partición en blanco y quiero crear /dev/hda5 como un sistema de archivos ext3, montarlo en el directorio /mnt/slack y luego instalar Slackware. 10.2 a través de chroot;
Paso 1: necesita usar la herramienta de partición fdisk o parted para planificar su partición
Paso 2: cree un sistema de archivos;
[root@localhost
~]#mkdir /mnt/slack
[root@localhost ~]# mkfs.ext3 /dev/hda5 Nota: Formatee /dev/hda5 como archivo ext3 system;
Paso 3: Monte el sistema de archivos;
[root@localhost ~]# mount /dev/hda5 /mnt/slack Nota: Monte /dev/hda5 en / Directorio mnt/slack;
p>Paso 4: Monte el primer CD de slackware 10.2 e instale el sistema básico;
[root@localhost
~] # mount -o loop slackware- 10.2-install-d1.iso /mnt/cdrom/
Primero podemos crear un directorio de almacenamiento de paquetes de software en el directorio /mnt/slack para almacenar slackware-10.2-install- d1.iso Todo el contenido;
[root@localhost
~]#mkdir /mnt/slack/pack
[root@localhost ~]# cp - rp /mnt /cdrom/* /mnt/slack/pack
Luego descomprime todos los paquetes en el directorio a en el directorio slackware en el primer disco, así como los paquetes que comienzan con glibc en el directorio d , el directorio d zlib y zsh y copie todos los directorios extraídos, como /usr, etc, lib, etc. a /mnt/slack;
Paso 5: Resolver dependencias;
Si ejecutamos el siguiente comando y se nos indica que no hay ningún archivo /bin/bash, necesitamos resolver las dependencias. Al resolver las dependencias, también encontraremos los paquetes de software básicos necesarios para ejecutar chroot; p>
[root@localhost
~]# chroot /mnt/slack
Si indica que faltan algunos archivos, podemos juzgar por nosotros mismos qué paquetes faltan; cuando ingresamos /mnt/slack/bin El directorio descubrió que efectivamente no hay ningún archivo bash, por lo que necesitamos copiar un archivo bash
[root@localhost
~]#; cd /mnt/slack/bin
[root@localhost bin]# cp bash2.new bash
En este momento también necesitamos determinar los archivos de biblioteca de los que depende bash <; /p>
[root@localhost
bin]# ldd bash
La mayoría de las dependencias que aparecen son para glibc. glibc está instalado en el directorio /mnt/slack/lib/tls. Podemos vincularlo uno por uno según las indicaciones. Simplemente cree el enlace si falta algo; verifique si hay un archivo glibc en /mnt/slack/lib y luego vincúlelo. Si está almacenado en el directorio tls, también debe estar vinculado a /mnt/slack/lib.
Utilice rutas relativas al vincular, no rutas absolutas;
Crear un archivo de enlace es similar a crear un acceso directo en Windows, use el comando ln;
#ln -s nombre de archivo original nuevo Nombre de archivo
¿Qué se considera para resolver la relación de dependencia de bash? No tendrá éxito hasta que podamos hacer chroot /mmt/slack;
Paso 6: Chroot es exitoso e ingresa al sistema Slackware;
Después de que chroot sea exitoso, podemos ingresar al sistema Slackware y luego use la herramienta pkgtool o installpkg para instalar otros paquetes de software, como kernel
[root@localhost
~]# chroot /mnt/slack
Séptimo paso; cambiar el archivo /etc/fstab;
Si desea que un sistema operativo se ejecute de forma independiente, debe escribir el archivo /etc/fstab. Puede consultarlo, como en el siguiente ejemplo. puedes cambiarlo. Se puede usar después de cambiar
/dev/hda7
swap swap defaults 0 0
/dev/hda6 / reiserfs defaults 1 1;
/dev/hda1 /mnt/winc
ntfs ro 1 0
/dev/hda3 /mnt/wind vfat valores predeterminados 1 0
/dev/ cdrom /mnt/cdrom
auto noauto,propietario,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,propietario 0 0
devpts
/dev/pts devpts gid=5,mode=620 0 0
proc /proc proc valores predeterminados 0 0
ninguno /sys
sysfs defaults 0 0
Paso 8: Arranque el sistema
Arranque Slackware a través de GRUB o LILO boot manager
5.2 A través de chroot; Instale Slackware 10.2 en un archivo de imagen;
Paso 1: cree un archivo de imagen;
Por ejemplo, creamos un archivo de imagen llamado slack.img con un tamaño de 2G. use el siguiente comando; bs es el tamaño de cada bloque es 1M, *** cree 2000 bloques
[root@localhost
~]# dd if=/dev /zero; of=slack.img bs=1M count=2000 seek=1024
Paso 2: Crear un sistema de archivos;
Podemos crear un sistema de archivos como ext3, fat32 o reiserfs, cree un sistema de archivos,
[root@localhost
~]# /sbin/mkfs.ext3 slack.img
mke2fs 1.38 (30-jun-2005 )
slack.img no es
un dispositivo especial de bloqueo.
¿Continuar de todos modos? (s,n) y
Tercer paso : Monte el archivo de imagen formateado
[root@localhost
~]# mkdir /mnt/slack
[root@localhost ~] # mount -o; bucle slack.img /mnt/slack/
Cuarto
Los siguientes pasos son básicamente los mismos que las operaciones del disco duro físico, así que omita el anterior;
6. Extracción de paquetes de software como rpm, tgz, deb, etc. Las distribuciones tienen ciertos formatos de paquetes de software, como file.rpm, file.deb o file.tgz o file.tar.gz, etc., los paquetes de software en formato rpm generalmente se desarrollan basándose en Redhat o Fedora en formato RPM.
Debido a que chroot instala el sistema operativo, lo primero es extraer archivos de un paquete de software y luego copiarlos al sistema de archivos, por lo que la herramienta de extracción de archivos también necesita una pequeña explicación;
6.1 Extracción de archivos desde rpm paquetes de software;
El requisito previo para la operación es la herramienta de administración de rpm, lo que significa que se requieren rpm y otros comandos relacionados;
Formato de comando: rpm2cpio file.rpm |cpio -div
Ejemplo:
[root@localhost
RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div
Los archivos extraídos están en usr, etc. en el directorio operativo actual;
De hecho, extraer archivos de esta manera no es tan conveniente como especificar el directorio de instalación para instalar el software; extraer archivos;
Especifique el directorio de instalación del paquete de software: agregue el parámetro -relocate; el siguiente ejemplo es para especificar gaim-1.3.0- 1.fc4.i386.rpm para instalarlo en / directorio opt/gaim;
[root@localhost
RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386. rpm
Preparando..
############################## ########## # [100%]
1:gaim ######################### ######### ########
[100%]
[root@localhost RPMS]# ls /opt/
gaim
Esto también se puede ver de un vistazo; todos los archivos gaim están instalados en /opt/gaim. Simplemente hacemos una copia de seguridad del directorio gaim, que en realidad es una forma de extraer archivos. p>
6.2 extracción file.tgz, file.tar.gz y file.tar.bz2
[root@localhost
~]# tar zxvf file.tgz
[root @localhost ~]# tar zxvf file.tar.gz
[root@localhost
~]# tar zxvf file.tar.bz2 p>
6.3 extracción de archivo.deb;
[root@localhost
~]# ar x file.deb
[root@localhost ~] # tar zxvf data.tar.gz
Descomprima file.deb a través de ar x y luego descomprima data.tar.gz para ver los directorios y archivos relacionados
6.4 file.iso; Extracción de archivos
Dichos archivos se montan principalmente a través de la dirección de montaje mount -o loop file.iso en Linux
[root@localhost
; ~] # mount -o loop slackware-10.2-install-d1.iso /mnt/cdrom/
7. Problemas adicionales de instalación de software después de realizar un chroot exitoso en el nuevo sistema operativo;
Si a través de chroot, podemos ingresar al sistema operativo recién instalado y podemos usar la herramienta de administración de paquetes del nuevo sistema operativo para instalar otros paquetes de software. Por ejemplo, Slackware usa las herramientas pkgtool o installpkg;
Herramientas; las herramientas utilizadas por la mayoría de las distribuciones son diferentes y la versión de la distribución prevalecerá;
8. Acerca de este artículo;
Quería escribir este artículo el año pasado. A medida que pasa el tiempo, lo que pienso hoy puede olvidarse mañana, por eso quiero escribirlo cuando se usa chroot, y cuando no se usa, dejo de lado los documentos de escritura. Hoy estaba escribiendo un documento sobre Xen y también usé el método chroot para instalar un nuevo sistema operativo, así que escribí un artículo en "Forzado". Aunque hay menos funciones que involucran a chroot, en general, chroot está casi cubierto; tal vez el nombre de este artículo sea un poco inconsistente y no sé qué nombre usar para el título.