Red de conocimientos sobre prescripción popular - Conocimiento dental - Cómo crear un sistema de archivos raíz de Linux

Cómo crear un sistema de archivos raíz de Linux

El sistema de archivos raíz siempre ha sido una parte importante de todos los sistemas operativos tipo Unix y también puede considerarse una característica importante que distingue los sistemas Linux integrados de otros sistemas operativos integrados tradicionales. Aporta muchas funciones potentes y flexibles a Linux, pero también cierta complejidad. Necesitamos comprender claramente la estructura básica del sistema de archivos raíz, seleccionar cuidadosamente las bibliotecas del sistema, los módulos del kernel y las aplicaciones requeridas, y configurar varios archivos de script de inicialización, así como seleccionar el tipo de sistema de archivos apropiado y colocarlo en el dispositivo de almacenamiento real. ubicación adecuada.

El sistema de archivos raíz de Linux está organizado en una estructura de árbol, que incluye varios archivos y programas necesarios para la administración del kernel y del sistema. En términos generales, los directorios de nivel superior bajo el directorio raíz "/" tienen algunos nombres y propósitos fijos.

A continuación se enumeran estructuras de directorios comunes en los sistemas de archivos raíz de Linux:

/bin es el directorio donde se almacenan los comandos ejecutables binarios.

Este directorio contiene comandos básicos disponibles para todos los usuarios. Estos comandos se pueden usar antes de montar otros sistemas de archivos, por lo que el directorio /bin debe estar en la misma partición que el sistema de archivos raíz.

Los comandos comúnmente utilizados en el directorio /bin son: cat, chgrp, chmod, CP, ls, sh, kill, mount, umount, mkdir, mknod, [, test y otros comandos "[" en realidad son pruebas. Cuando usamos Busybox para crear el sistema de archivos raíz, podemos ver algunos archivos ejecutables en el directorio bin generado, es decir, algunos comandos disponibles.

El directorio /dev donde se almacenan los archivos del dispositivo.

Los archivos del dispositivo se almacenan en este directorio, que es un tipo de archivo único en Linux. En el sistema Linux, se accede a varios dispositivos en forma de archivos, es decir, se opera un hardware específico leyendo y escribiendo un archivo de dispositivo. Por ejemplo, el puerto serie 0 se puede operar a través del archivo "dev/ttySAC0" y se puede acceder a la segunda partición del dispositivo MTD a través de "/dev/mtdblock1".

/etc es el directorio donde se almacenan los archivos de configuración y administración del sistema.

En este directorio se almacenan varios archivos de configuración. Para los sistemas Linux en PC, hay muchos archivos y directorios en el directorio /etc. Estos archivos de catálogo son opcionales y dependen de las aplicaciones de su sistema y de si esos programas requieren archivos de configuración. En los sistemas integrados, estos pueden reducirse considerablemente.

/home El directorio de inicio del usuario. Por ejemplo, el directorio de inicio del usuario es /home/user, que puede representarse por ~user.

Directorio de usuarios, esto es opcional. Para cada usuario normal, existe un subdirectorio con el nombre del usuario en el directorio /home para almacenar archivos de configuración relacionados con el usuario.

/lib es el directorio para vincular dinámicamente * * * bibliotecas compartidas.

Este directorio almacena * * * bibliotecas compartidas y cargables (controladores), * * * las bibliotecas compartidas se utilizan para iniciar el sistema. Ejecute programas ejecutables en el sistema de archivos raíz, como programas en el directorio /bin /sbin.

/sbin es el directorio que almacena el hipervisor utilizado por los administradores del sistema.

Este directorio almacena comandos del sistema, es decir, comandos que sólo pueden ser utilizados por administradores. Los comandos del sistema también se pueden almacenar en los directorios /usr/sbin y /usr/local/sbin. El directorio /sbin almacena comandos básicos del sistema que se utilizan para iniciar y reparar el sistema. De manera similar al directorio /bin, /sbin se puede usar antes de montar otros sistemas de archivos, por lo que el directorio /sbin debe estar en la misma ubicación que el sistema de archivos raíz.

Los comandos comunes en el directorio /sbin incluyen: apagar reiniciar fdisk fsck, etc. Los comandos del sistema instalados por usuarios locales se colocan en el directorio /usr/local/sbin.

/tmp es un punto común de almacenamiento de archivos temporales

Se utiliza para almacenar archivos temporales, generalmente un directorio vacío, ubicado en el directorio /tmp utilizado por algunos programas que necesitan generar archivos temporales. , por lo que el directorio /tmp debe existir y ser accesible.

/directorio de inicio del administrador del sistema raíz

El directorio del usuario raíz En consecuencia, el directorio del usuario normal es un subdirectorio en /home.

/mnt system proporciona este directorio para que los usuarios monten temporalmente otros sistemas de archivos.

El punto de montaje utilizado para montar temporalmente el sistema de archivos suele ser un directorio vacío, o puede crear un subdirectorio vacío en él, como /mnt/cdram /mnt/hda1. Se utiliza para CD de instalación temporal y discos duros.

/proc sistema de archivos virtual, al que se puede acceder directamente para obtener información del sistema.

Este es un directorio vacío que generalmente se usa como punto de montaje para el sistema de archivos proc. El sistema de archivos proc es un sistema de archivos virtual que no tiene un dispositivo de almacenamiento real. Los directorios y archivos internos son generados temporalmente por el kernel para indicar el estado de ejecución del sistema y también pueden operar el sistema de control de archivos.

/usr es el directorio más grande y casi todas las aplicaciones y archivos que necesita utilizar se encuentran en este directorio.

El contenido del directorio /usr se puede almacenar en otra partición y luego vincularlo al directorio /usr en el sistema de archivos raíz después de que se inicia el sistema. Los programas y datos almacenados en él son * * * compartidos y de solo lectura, lo que indica que el contenido del directorio /usr se puede compartir entre múltiples hosts, lo que cumple principalmente con los estándares FHS. Los archivos en /usr deben ser de sólo lectura y los archivos variables relacionados con otros hosts deben mantenerse en otros directorios, como /var. El directorio /usr se puede perfeccionar en sistemas integrados.

/var es el área de desbordamiento de algunos archivos grandes.

A diferencia del directorio /usr, el directorio /var almacena datos variables, como directorios de spool (correo, noticias), archivos de registro y archivos temporales.

-

1. Entorno de trasplante:

1. Distribución Ubuntu 10.10

2. >3. Máquina de destino: plataforma FS_S5PC100.

4. Compilador cruzado ARM-Cortex _ A8-Linux-GNUEABI-GCC

-

2 Pasos de trasplante

1. , descarga del código fuente

La versión que elegimos es togetherbox-1.17.3 tar bz2. Solución Comprimir el código fuente

$ tar xvf Busybox-1.17.3 tar bz2

3. Ingrese el directorio fuente

$ cd Busybox-1.17.3.

4. Configurar el código fuente

$ make menuconfig

Configuración de Busybox->

Opciones de compilación->

[*] Construye BusyBox como un binario estático (sin bibliotecas compartidas)

[ ] Forza la compilación de NOMMU

[ ] Admite compilaciones de archivos grandes (para acceder a archivos y gt2 GB)

(arm-cortex_a8-linux-gnueabi-) prefijo de compilador cruzado

() CFLAGS adicionales

5. make

6. Instalación

La ruta de instalación predeterminada de Busybox es _install en el directorio de origen.

$ Instalación

7. Ingrese al directorio de instalación.

$ cd _install

$ ls

bin linuxrc sbin usr

8.

$ mkdir dev y otras variables del proceso de administración tmp system root

9. Agregar biblioteca

Cree una carpeta lib en el directorio _install y agregue la cadena de herramientas. La biblioteca se copia en el directorio lib.

$ biblioteca mkdir

$ CP/home/Linux/x-tools/arm-cortex _ A8-Linux-gnueabi/arm-cortex _ A8-Linux-gnueabi/lib/ *. /lib/

Eliminar todos los directorios. ofile y. lib y reduzca las bibliotecas bajo un archivo para reducir el tamaño del sistema de archivos.

$rm*. o*. a

$ arm-cortex _ A8-Linux-gnueabi-strip lib/*

10, agregue el archivo de inicio del sistema

Agregue el archivo inittab en etc. .

$ vim /etc/inittab

El contenido de este archivo es el siguiente:

#Además de iniciar en modo de usuario único, se ejecuta primero .

* sysinit:/etc/init . d/rcS

# /bin/sh llamada al tty seleccionado

#Iniciar uno en la consola "preguntar" first" shell (sea lo que sea)

* pregunte primero:-/bin/sh

#Qué hacer al reiniciar el proceso de inicialización

* reiniciar: /sbin/init

#Cosas que hacer antes de reiniciar

* ctrl altdel:/sbin/reboot

Agregue el archivo fstab en etc.

$ vim /etc/fstab

El contenido de este archivo es el siguiente:

#Opción de tipo de punto de montaje del dispositivo volcado de secuencia fsck

Proceso/Proceso valor predeterminado del proceso 0 0

tmpfs /tmp valor predeterminado de tmpfs 0 0

sysfs /sys valor predeterminado de sysfs 0 0

tmpfs /dev tmpfs Valor predeterminado 0 0

Hay tres sistemas de archivos: proc, sysfs y tmpfs. En el kernel, tanto proc como sysfs son compatibles de forma predeterminada, pero tmpfs no. Necesitamos agregar soporte para tmpfs.

Modificar la configuración del kernel:

$ make menuconfigFile system-& gt;

Pseudo sistema de archivos-& gt; Soporte del sistema de archivos de memoria virtual (anteriormente shm fs)

[*] Lista de control de acceso POSIX de Tmpfs

Recompilar el kernel

$ make zImage

Cree el directorio init.d en etc y cree el archivo rcS en init.d.

$ mkdir /etc/init.d -p

$ vim /etc/init.d/rcS

El contenido del archivo rcS es:< /p >

#!/bin/sh

#Este es el primer script llamado por el proceso de inicio

/bin/mount -a

es rcS Agregar permisos ejecutables:

$ chmod +x init.d/rcS

Agregar archivo de configuración en etc.

$ vim /etc/profile

El contenido del archivo es:

#!/bin/sh

Exportar nombre de host = previsor

Exportar usuario=root

Exportar página de inicio=root

# exportar PS 1 = " \[\ u @ \ h \ W \]\ $ "

exportar PS 1 = "[$ USUARIO @ $ HOSTNAME \ W]\ # "

RUTA =/bin:/sbin:/usr/bin:/usr/sbin

LD _ LIBRARY _ PATH =/lib:/usr/lib:$ LD _ LIBRARY _ PATH

Ruta de exportación LD_LIBRARY_PATH

11, creación de archivos del dispositivo

Debe haber un nodo de dispositivo en el sistema de archivos raíz. Cree un nodo de consola en dev.

$ mknod development/console c 5 1

Nota importante: si el tamaño del sistema de archivos recién creado supera los 8 M, elimine los archivos de biblioteca innecesarios.