Cómo crear un sistema de archivos raíz de Linux
El sistema de archivos raíz de Linux está organizado en una estructura de árbol y contiene varios archivos y programas necesarios para la gestió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.
La siguiente es una lista de estructuras de directorios comunes en el sistema de archivos raíz de Linux:
Directorio/bin para comandos ejecutables binarios
Este directorio almacena archivos que pueden ser utilizado por todos los usuarios Los comandos básicos se pueden usar antes de conectarse a otros sistemas de archivos, por lo que el directorio /bin debe estar ubicado en la misma partición que el sistema de archivos raíz.
Los comandos comunes en el directorio /bin incluyen: cat, chgrp, chmod, cp, ls, sh, kill, mount, umount, mkdir, m knod, [, test, etc. ["El comando es en realidad un comando de prueba. Cuando usamos Busybox para crear el sistema de archivos raíz, en el directorio bin generado, podemos ver algunos archivos ejecutables, es decir, algunos comandos disponibles.
/dev Directorio de archivos de dispositivos
Este directorio almacena archivos de dispositivos, que son un tipo de archivo específico de Linux que le permite acceder a varios dispositivos como archivos, es decir, leer o escribir archivos de dispositivos para operar hardware específico. puede acceder al puerto serie 0 a través del archivo "dev/ttySAC0" y a la segunda partición del dispositivo MTD a través de "/dev/mtdblock1"
/etc Directorio para archivos de configuración y administración del sistema
.Este directorio almacena varios archivos de configuración para sistemas Linux en PC, el directorio /etc contiene una gran cantidad de archivos y directorios que son opcionales dependiendo de las aplicaciones disponibles en el sistema y de si el programa requiere archivos de configuración. En sistemas integrados, estos archivos se pueden reducir considerablemente.
El directorio de inicio del usuario, por ejemplo, el directorio de inicio del usuario es /home/user, que puede representarse por ~user <. /p>
El directorio de usuario es opcional. Hay un subdirectorio en el directorio /home, que lleva el nombre del usuario, que se utiliza para almacenar los archivos de configuración relevantes de cada usuario normal
/. lib. Enlace dinámico **** directorio de biblioteca de habilitación
Este directorio almacena **** bibliotecas de habilitación y cargables (controladores), **** las bibliotecas de habilitación se utilizan para iniciar el sistema en el archivo raíz en ejecución. system.programas ejecutables, como los programas en el directorio /bin /sbin.
/sbin es un directorio que almacena los programas de administración utilizados por los administradores del sistema.
Este directorio almacena comandos del sistema. es decir, solo los comandos y comandos del sistema que pueden ser utilizados por los administradores también pueden almacenarse 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. system El directorio /sbin almacena los comandos básicos del sistema para iniciar el sistema, reparar el sistema, etc. De manera similar al directorio /bin, puede usar /sbin antes de montar otros sistemas de archivos, por lo que el directorio /sbin debe estar en el. misma partició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 área pública de almacenamiento de archivos temporales
Se utiliza para almacenar archivos temporales, generalmente un directorio vacío. Algunos programas que necesitan generar archivos temporales lo usarán en el directorio /tmp. / El directorio tmp debe existir y ser accesible.
/directorio de inicio del administrador del sistema raíz
El directorio del usuario raíz es diferente del directorio de los usuarios normales. Es un subdirectorio de /home.
/mnt El sistema proporciona este directorio para permitir a los usuarios montar temporalmente otros sistemas de archivos.
El punto de montaje para montar temporalmente el sistema de archivos suele ser un directorio vacío, o se puede crear un subdirectorio vacío en él, como /mnt/cdram /mnt/hda1. Se utiliza para montar temporalmente CD-ROM y discos duros.
/proc sistema de archivos virtual, que puede acceder directamente a la información del sistema.
Este es un directorio vacío que normalmente se utiliza como punto de montaje para el sistema de archivos proc. El sistema de archivos proc es un sistema de archivos virtual sin dispositivos de almacenamiento reales. Los directorios y archivos que contiene son generados temporalmente por el kernel para representar el estado de ejecución del sistema y controlar el sistema de control de archivos.
/usr es el directorio más grande y contiene casi todas las aplicaciones y archivos.
El contenido del directorio /usr puede existir en otra partición y luego montarse en el directorio /usr en el sistema de archivos raíz después del inicio del sistema. Contiene programas y datos muy agradables y de sólo lectura, lo que indica que el contenido del directorio /usr se puede disfrutar en múltiples hosts y también cumple en gran medida con FHS. Los archivos en el directorio /usr deben ser de solo lectura y otros archivos de variables relacionadas con el host deben mantenerse en otros directorios, como /var. El directorio /usr se puede optimizar de forma incrustada.
/var Área de desbordamiento de algunos archivos grandes
A diferencia del directorio /usr, el directorio /var almacena datos variables, como directorios de spool (correo, noticias), registros archivos y documento temporal.
------------------------------------------- ----- --------------------------
I.Entorno de migración:
1. Versión de lanzamiento de Ubuntu 10.10
2. u-boot.bin
3. Destino: plataforma FS_S5PC100
4. Compilador cruzado arm-cortex_a8-linux. -gnueabi-gcc
--------------------------------------- ------ ------ -------------------
2 Pasos del trasplante
1. Descarga del código fuente
p>La versión que elegimos es Busybox-1.17.3.tar.bz2 Ruta de descarga:
/downloads/
2. el código fuente
$ tar xvf togetherbox-1.17.3.tar.bz2
3 Ingrese al directorio del código fuente
$ cd Busybox-1.17.3.
4. Configuración Código fuente
$ make menuconfig
Configuración de Busybox ---gt
Opciones de compilación ---gt;
[*] Compile BusyBox como un binario estático (sin bibliotecas compartidas)
[ ] Forzar compilación NOMMU
[ ] Admite compilación de archivos grandes (para acceder a 2 GB)
(arm-cortex_a8-linux-gnueabi-) prefijo de compilador cruzado
() CFLAGS adicionales
5.p>$ make p>
6. Instalación
Busybox se instala de forma predeterminada en _install en el directorio del código fuente
$ make install
7. directorio
$ cd _install
$ ls
bin linuxrc sbin usr
8. Crea otros directorios según sea necesario
$ mkdir dev etc mnt proc var tmp sys root
9. Agregar bibliotecas
Cree la carpeta lib en el directorio _install y copie las bibliotecas de la cadena de herramientas al directorio lib.
$ mkdir lib
$ cp /home/linux/x-tools/arm-cortex_a8-linux-gnueabi/arm-cortex_a8-linux-gnueabi/lib/ * ./lib/
Elimine todos los directorios, archivos .o y archivos .a en lib y optimice la biblioteca para reducir el tamaño del sistema de archivos
$ rm *.o *.a
$ arm-cortex_a8-linux-gnueabi-strip lib/*
10 Agregar archivo de inicio del sistema
Agregar archivo inittab en etc
$ vim / etc/inittab
El contenido del archivo es el siguiente:
#Excepto cuando se inicia en modo de usuario único, este archivo se ejecutará primero
::.sysinit:/ etc/init.d/rcS
#
Llame a /bin/sh en ttys seleccionados
# Inicie el shell "askfirst" (sea lo que sea) en la consola
::askfirst:-/bin/sh
# Cosas que hacer al reiniciar el proceso de inicio
::restart:/sbin/init
# Cosas que hacer antes de reiniciar
::ctrlaltdel :/sbin/reboot
Agregue el archivo fstab en etc
$ vim /etc/fstab
El contenido del archivo es el siguiente:
#dispositivo tipo de punto de montaje opciones volcar orden fsck
proc /proc proc valores predeterminados 0 0
tmpfs /tmp tmpfs valores predeterminados 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
Tmpfs /dev tmpfs defaults 0 0
Aquí estamos montando el dispositivo.
p>
Aquí conectamos tres sistemas de archivos proc, sysfs y tmpfs. El kernel admite proc y sysfs de forma predeterminada, pero no tmpfs. Necesitamos agregar soporte para tmpfs
Núcleo de modificación. configuración:
$ make menuconfig sistema de archivos ---gt;
Pseudo sistema de archivos ---gt;
[*] Soporte de sistema de archivos de memoria virtual ( Original shm fs)
[*] Lista de control de acceso POSIX de Tmpfs<
Recompilar el kernel
$ make zImage
Crear init. d y cree el archivo rcS en init.d
$ mkdir /etc/init.d -p
$ vim /etc/init.d/rcS
El contenido del archivo rcS es:
#! /bin/sh
# Este es el primer script llamado por el proceso de inicio
/bin/mount -a
Agregue permisos ejecutables a rcS: < / p>
$ chmod x init.d/rcS
Agregue un archivo de configuración para rcS en etc
$ vim /etc/profile
archivo el contenido es el siguiente:
#!/bin/sh
exportar HOSTNAME=farsight
exportar USER=root
exportar HOME= raíz
#export PS1="\[\u@\h \W\]\$"
exportar PS1 ="[$USER@$HOSTNAME \W]\#" p>
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
exportar PATH LD_LIBRARY_PATH
11. Crear archivos de dispositivo
Hay un nodo de dispositivo en el sistema de archivos raíz y necesita crear un nodo de consola en dev
$ mknod dev/console c 5 1
Importante: si el sistema de archivos recién creado supera los 8 M, su tamaño se reducirá. Elimine los archivos de biblioteca innecesarios.