Linux+FreeBSD Como
Niels Kristian Bech Jensen, nkbj@image.dk
Traductor : Marc Aparicio, aparicio@info-sciences.univ-orleans.fr
v1.0, 20 MAR 1999
Este documento describe como usar Linux y FreeBSD en el mismo sistema.
Introduce FreeBSD y muestra como los dos sistemas operativos pueden cooperar,
por ejemplo compartiendo una partición swap. Antes de leer este documento
deberías tener un poco de experiencia con Linux o FreeBSD, así como,en como
particionar el disco duro. Todo lo que se muestra en este documento esta
testeado en FreeBSD 2.2.2, aunque tendrían que ser validas también en
versiones posteriores. No dudes a enviarme un mail si tienes comentarios,
preguntas o sugestiones sobre este documento. También me gustaría saber de
gente que tenga experiencia usando Linux juntamente con NetBSD o OpenBSD.
______________________________________________________________ ________
Índice General:
1. Que es FreeBSD?
2. La forma en que FreeBSD etiqueta los discos duros
2.1 FreeBSD ``porciones'' y ``particiones''
2.2 Disco y etiquetas de las particiones en Linux y FreeBSD
3. Compartir espacio swap entre Linux y FreeBSD
3.1 Instalar y preparar Linux
3.2 Instalar FreeBSD
3.3 Definir la partición swap de FreeBSD en Linux
4. Arrancar FreeBSD usando LILO
5. Montar sistemas de ficheros
5.1 Montar el sistema de ficheros UFS desde Linux
5.2 Montar el sistema de ficheros ext2fs desde FreeBSD
6. Ejecucion de binarios ajenos
6.1 Ejecutar binarios FreeBSD en Linux
6.2 Ejecutar binarios Linux en FreeBSD
7. Referencias y otros documentos de interés
8. Reconocimientos y Copyright
8.1 Disclaimer
8.2 Copyright
9. Del traductor
10. Anexo: Grupos LiNUXeros en España
______________________________________________________________ ________
1. Que es FreeBSD?
FreeBSD es un sistema operativo tipo Unix gratuito como puede serlo Linux. La
principal diferencia es que,mientras que el núcleo de Linux ha sido escrito de
la nada, FreeBSD esta basado en las partes libremente distribuibles de 4.4BSD
(Berkeley Software Distribution) conocido como 4.4BSD-lite. Este echo puede
incitar a que cierta gente sugiera que FreeBSD es mas cercano a ser un
"verdadero" UNIX(TM) que Linux. FreeBSD corre solamente en plataformas Intel PC
(i386 y superior); actualmente se esta trabajando en las versiones para
plataformas DEC Alpha y Sun Sparc. Los requisitos Hardware son parecidos a los
de Linux.
El desarrollo de FreeBSD esta dirigido de una forma distinta a la de
Linux. Un equipo de desarrolladores sirve de arbitro y se encarga del liderazgo
del proyecto. Grandes cambios son discutidos por avanzado en las listas de
correo. El proyecto FreeBSD tiene dos ramas de desarrollo(como en Linux):
``-CURRENT'' y ``-STABLE''. En la rama ``-CURRENT'' es donde se desarrollan
los nuevos componentes. La rama ``-STABLE'' esta restringida a arreglar
fallos y a anadir nuevos componentes ya testeados.
FreeBSD puede ser usado y distribuido gratuitamente como Linux. La mayor parte
del sistema esta realizado bajo el copyright BSD; el resto esta bajo la GNU GPL o
la GNU LGPL.
Puedes encontrar mas información a cerca de FreeBSD (y bajarte el sistema entero)
en la página del proyecto FreeBSD . El codigo de la
ultima version ``-STABLE'' y ``-CURRENT'' es vendido en CDROMs por Walnut Creek
CDROM (su web y servidores ftp corren bajo FreeBSD.)
2. La forma en que FreeBSD etiqueta los discos duros
Linux y FreeBSD etiquetan los discos duros según dos esquemas distintos.
Esta sección explica las principales diferencias entre los dos esquemas.
De echo el esquema de etiquetar de FreeBSD es una adaptación del estilo
tradicional BSD. Por ello es muy similar a otros Unix basados en BSD como
NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS, y Solaris.
2.1. FreeBSD "porciones" y "particiones"
FreeBSD necesita una de las cuatro entradas de la tabla de partición de tu disco
duro. Esta partición primaria se llama "porción" ("slice") en la terminología
FreeBSD. Esta entonces utiliza el programa para etiquetar el disco para crear
hasta ocho particiones en esta partición primaria. Estas particiones lógicas se
denominan "particiones" ("partitions") en la terminología FreeBSD. Este concepto
es similar a la forma que Linux (y DOS) contiene particiones lógicas en una
partición extendida. No puedes instalar FreeBSD en una partición extendida echa
por Linux (o DOS).
Notad que el fdisk de Linux no puede mostrar las particiones BSD en una porción
FreeBSD desde el menú principal, pero si es posible que muestre la información
de las etiquetas con el comando `b'.
La salida es algo similar a esto (/dev/hda4 es la porcion FreeBSD):
bash# fdisk /dev/hda
Command (m for help): p
Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 27 54400+ 83 Linux native
/dev/hda2 28 28 55 56448 83 Linux native
/dev/hda3 56 56 403 701568 83 Linux native
/dev/hda4 404 404 621 439488 a5 BSD/386
Command (m for help): b
Reading disklabel of /dev/hda4 at sector 1624897.
BSD disklabel command (m for help): p
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 64512 1624896 4.2BSD 0 0 0 # (Cyl. 404 - 419)
b: 104832 1689408 swap # (Cyl. 420 - 445)
c: 878976 1624896 unused 0 0 # (Cyl. 404 - 621)
e: 64512 1794240 4.2BSD 0 0 0 # (Cyl. 446 - 461)
f: 645120 1858752 4.2BSD 0 0 0 # (Cyl. 462 - 621)
BSD disklabel command (m for help): q
bash#
Las letras `a'...`f' de la primera columna son las mismas etiquetas como se
muestra en el ejemplo para una porción FreeBSD. Hay tres particiones especiales
en BSD. La letra `a' designa la partición raiz, `b' designa la partición swap,
mientras que `c' designa la porción entera. Ver la documentación FreeBSD para
mas información en la manera de asignar estas letras a otro tipo de
particiones.
2.2. Disco y etiquetas de las particiones en Linux y FreeBSD
Los discos duros están etiquetados de la siguiente manera en Linux y FreeBSD:
Linux FreeBSD
First IDE drive /dev/hda /dev/wd0
Second IDE drive /dev/hdb /dev/wd1
First SCSI drive /dev/sda /dev/sd0
Second SCSI drive /dev/sdb /dev/sd1
Las particiones (porciones FreeBSD) en un disco IDE son etiquetadas de la
siguiente manera (se utiliza /dev/hda como ejemplo):
Linux FreeBSD
First primary partition /dev/hda1 /dev/wd0s1
Second primary partition /dev/hda2 /dev/wd0s2
Third primary partition /dev/hda3 /dev/wd0s3
Fourth primary partition /dev/hda4 /dev/wd0s4
Las particiones en mi porción FreeBSD son etiquetadas de la siguiente manera.
Es como se etiquetan por defecto. Es posible cambiar la etiqueta si
personalizas la instalación de FreeBSD (/dev/hda4 es la porción FreeBSD en el
ejemplo):
Linux label FreeBSD label FreeBSD mount point
/dev/hda5 /dev/wd0s4a /
/dev/hda6 /dev/wd0s4b swap
/dev/hda7 /dev/wd0s4e /var
/dev/hda8 /dev/wd0s4f /usr
Si ejecutas dmesg en Linux podrás ver esto (El núcleo de linux debe tener
soporte para el sistema de ficheros UFS para que funcione. Ver sección
"Instalar y preparar Linux"):
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
Si tienes FreeBSD instalado en la porción /dev/sd1s3 (/dev/sdb3 a modo Linux),
y /dev/sdb2 es una partición extendida Linux que contiene dos particiones
lógicas (/dev/sdb5 y /dev/sdb6), el ejemplo anterior seria asi :
Linux label FreeBSD label FreeBSD mount point
/dev/sdb7 /dev/sd1s3a /
/dev/sdb8 /dev/sd1s3b swap
/dev/sdb9 /dev/sd1s3e /var
/dev/sdb10 /dev/sd1s3f /usr
Esto se mostraría así
Partition check:
sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >
como salida del dmesg.
Si tienes una partición extendida Linux después de tu porción FreeBSD tienes
un problema, porque la mayor parte de disquetes de instalación del núcleo de
Linux están construidos sin soporte UFS, con lo que no reconocerá las
particiones FreeBSD dentro de la porción. Lo que se tendría que ver como esto
(/dev/hda3 es la porción FreeBSD y /dev/hda4 es la partición extendida Linux)
Partition check:
hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >
se vería como:
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
Esto puede darte una mal asignación de dispositivos y causar la perdida de
datos. Mi consejo es de poner siempre tu porción FreeBSD después de cualquier
partición extendida Linux, y no cambiar ninguna partición lógica en tus
particiones extendidas Linux después de instalar FreeBSD!
3. Compartir espacio swap entre Linux y FreeBSD
Esta sección describe como conseguí que Linux y FreeBSD compartieran una
partición swap. Puede haber distintas maneras de obtener el mismo resultado.
Si quieres, puedes instalar FreeBSD antes que Linux, pero pon atención en el
orden de las particiones en la porción FreeBSD.
3.1. Instalar y preparar Linux
El primer paso es instalar Linux como de costumbre. Tienes que dejar espacio
para una porción FreeBSD en tu disco duro. No tienes porque hacer una partición
swap para Linux,pero si quieres una dale todo el espacio que quieres reservar
para FreeBSD. Así podrás borrar la partición swap de Linux, y usar el espacio
para FreeBSD.
Cuando hayas instalado Linux tendrás que recompilar el núcleo. Lee el
Kernel-COMO, si esto es nuevo para ti. Tienes que dar soporte al sistema de
ficheros UFS (solo lectura) y al sistema de etiquetas de disco de BSD (tabla
de partición FreeBSD) :
UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL)
[N/y/?] (NEW) y
Instala el nuevo núcleo y reinicia. Borra todas las líneas que tengan la
palabra swap del fichero /etc/fstab si habías echo una partición swap para
Linux. Asegúrate que tengas un disco de arranque con el nuevo núcleo. Ahora
estas preparado para instalar FreeBSD.
3.2. Instalar FreeBSD
Instala FreeBSD tal como se describe en la documentación de FreeBSD. Elimina
la partición swap de Linux si habías hecho una (puedes utilizar el fdisk de
FreeBSD.)
Presta atención al orden de las particiones en la porción FreeBSD. La segunda
partición debe ser la partición swap. Completa la instalación de FreeBSD y
reinicia Linux usando el disco de arranque de Linux.
3.3. Definir la particion swap de FreeBSD en Linux
Ejecuta dmesg Cuando hayas arrancado desde Linux. Como salida deberías tener
algo como esto :
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
Esto significa que /dev/hda4 es tu porción FreeBSD, mientras que /dev/hda5,
/dev/hda6, /dev/hda7 y /dev/hda8 son tus particiones FreeBSD. Si tu partición
swap es la segunda partición de la porción , será /dev/hda6. Tienes que añadir
la siguiente línea en el fichero /etc/fstab de tu Linux para activar la
partición swap:
/dev/hda6 none swap sw 0 0
Mientras que FreeBSD puede usar cualquier tipo de partición como espacio swap,
Linux necesita un signatura especial en la partición swap. Esta signatura esta
hecha por mkswap. FreeBSD destruye esta signatura cuando comparte la partición
swap, por lo que tendrás que ejecutar mkswap cada vez que arranques con Linux.
Para hacer esto automagicamente tendrás que encontrar el script que ejecuta
swapon en el arranque. En Red Hat es en el fichero /etc/rc.d/rc.sysinit. Pon
la siguiente línea en este fichero justo antes de swapon -a:
awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab
Esto ejecutara mkswap en cualquier pqrticion swap de /etc/fstab cada vez que
arranquemos excepto si estan comentadas (si el primer carácter de la línea es
``#''.)
Ejecuta free para comprovar que el tamano del espacio swap es el correcto una
vez reiniciado Linux. Deberia reiniciar tambien con FreeBSD para asegurar que
todo funciona correctamente. Si no lo hace, seguramente es que has usado una
partición errónea como partición swap. La única solución para este problema es
reinstalar FreeBSD y probar de nuevo. La experiencia es un buen maestro. :-)
4. Arrancar FreeBSD usando LILO
Puedes arrancar fácilmente FreeBSD con LILO. No instales el selector de
arranque de FreeBSD (Booteasy) si quieres usar LILO. Añade las siguientes
líneas en tu fichero /etc/lilo.conf y ejecuta lilo (asumiendo que la porción
FreeBSD es /dev/hda4):
other=/dev/hda4
table=/dev/hda
label=FreeBSD
Si tienes instalado FreeBSD en el segundo disco SCSI, usa algo como esto
(siendo la porción FreeBSD /dev/sdb2):
other=/dev/sdb2
table=/dev/sdb
loader=/boot/chain.b
label=FreeBSD
5. Montar sistemas de ficheros
5.1. Montar el sistema de ficheros UFS desde Linux
Desafortunadamente el driver UFS en los núcleos de Linux 2.0.xx no incluye
soporte para FreeBSD. Cuando intentas montar un partición FreeBSD, te
aparecen una serie de mensajes de error (la partición se monta pero no puedes
leer nada de ella.)
Este problema ha sido solucionado en Linux 2.1.87 y superior.
Hay otra versión del driver UFS para los núcleos Linux 2.0.xx (xx <= 30) en
SunSite . Se llama U2FS y la
versión actual es u2fs-0.4.3.tar.gz. Una versión de U2FS (ufs-0.4.4.tar.gz)
para Linux 2.0.31 y superior (2.0.xx; not 2.1.xx) puede ser encontrada en
juntamente con mas
información sobre U2FS (y UFS.)
Ahora puedes recompilar el núcleo dando soporte para el sistema de ficheros
U2FS y para las etiquetas de discos BSD. Ver sección ``Instalar y preparar
Linux'' para mas información. Si usas U2FS no tienes que dar soporte a UFS,
si no quieres.
Cuando hayas instalado el nuevo núcleo, podrás montar sistemas de ficheros UFS
(todas las particiones de tu porción FreeBSD exceptuando la swap) con el
siguiente comando:
mount -t u2fs /dev/hda8 /mnt
o como el que sigue :
mount -t ufs /dev/hda8 /mnt
si usas un núcleo de Linux versión 2.1.87 o posterior.
Los drivers UFS (y U2FS) son solo de lectura. Esto es; puedes leer el sistema
de ficheros UFS pero no puedes escribir. Actualmente se esta trabajando en una
versión para lectura/escritura.
5.2. Montar el sistema de ficheros ext2fs desde FreeBSD
Para montar el sistema de ficheros ext2fs bajo FreeBSD, primero tienes que
construir un nuevo núcleo con soporte a ext2fs. Lee el handbook de FreeBSD
para aprender como hacerlo. Pon la línea
options "EXT2FS"
en el fichero de configuración del nuevo núcleo.
Cuando arranques con el nuevo nucleo, podras montar particiones ext2fs con la
commanda que sigue :
mount -t ext2fs /dev/wd0s3 /mnt
No puedes montar particiones ext2fs en particiones extendidas a partir FreeBSD.
Debido a un bug en FreeBSD 2.2.5 y anteriores tendras que desmontar todas las
particiones ext2fs antes de apagar FreeBSD si usas una de estas versiones.
Si apagas FreeBSD con alguna partición ext2fs montada, FreeBSD no podrá
sincronizar las particiones UFS. Como resultado es que fsck será ejecutado la
proxima vez que arranques con FreeBSD.
6. Ejecucion de binarios ajenos
6.1. Ejecutar binarios FreeBSD en Linux
El paquete iBCS tiene soporte para ejecutar binarios FreeBSD bajo Linux; pero
es viejo y esta sin mantener. No he conseguido que funcione. Por favor haz me
saber si lo consigues.
6.2. Ejecutar binarios Linux en FreeBSD
FreeBSD tiene la posibilidad de ejecutar binarios Linux, tanto en formato
a.out como en ELF. Para hacer esto posible hay que seguir estos tres pasos :
1. Tienes que activar la compatibilidad Linux. Para hacer esto (en FreeBSD
2.2.2 --- algunos detalles puedes variar en otras versiones) tienes que
editar el fichero /etc/rc.conf y cambiar
linux_enable="NO"
a
linux_enable="YES"
y reiniciar. Otra manera de cargar el soporte de binarios Linux es ejecutar
el comando /usr/bin/linux. De esta manera no hace falta reiniciar, y no
tienes siempre cargado el soporte para binarios Linux con lo que ahorras
memoria.
Recuerda a añadir esta línea
options COMPAT_LINUX
a la configuración del núcleo FreeBSD, si recompilas el núcleo de FreeBSD.
2. Tienes que instalar las librerías compartidas de Linux, si tus binarios
Linux estan lincados dinamicamente. Las librerías están incluidas en
FreeBSD 2.2.{2,5,6} como el paquetelinux_lib-2.4.tgz. Ejecuta el siguiente
comando para instalar el paquete :
pkg_add /linux_lib-2.4.tgz
es el directorio donde esta el paquete. También cargarlo
vía Internet de la forma siguiente:
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_li b-2.4.tgz
o ejecutando /stand/sysinstall. Entra en ``Configure'', ``Packages''
y usa el menú. Si los binarios son lincados estáticamente puedes ejecutarlos
con el siguiente comando :
brandelf -t Linux
3. Instalar el/los programa/s Linux que quieras ejecutar. El/los programa/s
pueden ser instalados sea en sistemas de ficheros UFS como ext2fs. Ver sección
``Montar el sistema de ficheros ext2fs desde FreeBSD'' para mas información
sobre usar ext2fs en FreeBSD.
He ejecutado sin problemas la versión para Linux de Applixware 4.3 y
Netscape 3.01 (ambas en formato ELF) desde FreeBSD 2.2.2 usando este método
(si, se que hay una Versión nativa de Netscape 4 para FreeBSD.) Las
versiones de Linux de acroread y StarOffice también funcionan bajo FreeBSD.
Lee la documentación de FreeBSD para mas información sobre este tema.
7. Referencias y otros documentos de interés
La ultima versión de este mini-COMO esta disponible en mi página web
en varios formatos (incluidos SGML y PostScript.)
El documento ha sido traducido al japonés por Mr. Teruyoshi Fujiwara como
parte del proyecto JF .
Gregor Hoffleit mantiene una página web
con información
acerca del desarrollo de U2FS y UFS.
La página web del proyecto FreeBSD tiene mucha
informacion a cerca FreeBSD (incluyendo todo el sistema operativo listo para
ser bajado.)
El Kernel-COMO esta realizado como parte de la documentación del proyecto
Linux en .
8. Reconocimientos y Copyright
Gracias a los miembros del grupo de usuarios *BSD en Dinamarca
por responder las preguntas de un novato en
FreeBSD, a Mr. Takeshi Okazaki por darme a saber de la existencia de U2FS, y
a Mr. David O'Brien por valiosas sugestiones.
8.1. Disclaimer
Aunque la información dada aqui es supuestamente correcta,los autores no se
responsabilizan del daño que este documento pueda crear. Los ejemplos y
consejos que aquí se dan corren a tu propio riego.
8.2. Copyright Copyright © 1997, 1998 por Niels Kristian Bech Jensen.
Este documento puede ser disribuido solamente bajo los terminos y condiciones
establecidos en la licencia LDP
.
9. Del traductor
Si tienes comentarios sobre la traducción, no dudes en hacérmelos
llegar.
Marc Aparicio. aparicio@info-sciences.univ-orleans.fr
Barcelona
10. Anexo: Grupos LiNUXeros en España
Francisco José Montilla, pacopepe@nova.es, FidoNet 2:345/402.22 es
coordinador del INSFLUG: (Impatient & Novatous Spanish Fidonet LiNUX
Users Group) uno de los varios grupos de usuarios existentes en
España, y más concretamente en la mejor ;-) área de FidoNet: R34.LINUX
junto con LuCas (LinUx en CAStellano).
El INSFLUG se orienta preferentemente a la traducción de documentos
breves, como los Howtos y PUFs (-- Preguntas de Uso Frecuente, las
FAQs. :)--) , etc.
LuCas Coordina y realiza las traducciones de las guides, es decir,
documentos más extensos.
Por supuesto, la orientación de cada grupo no tiene carácter
excluyente; si quieres colaborar en las dos, ¡mejor! ;-).
Actualmente están siendo traducidos varios COMOs y FAQs, además de las
``guides''.
Otra fuente de información obligada para el recién incorporado son las
FAQ elaboradas a partir del correo circulante por R34.LINUX por Pablo
Gómez, pgomez@arrakis.es, 2:341/43.40, disponibles próximamente en los
formatos habituales de documentación (ps, dvi, html, sgml, etc) en los
servidores de Internet especificados más adelante, así como en el
mismo área.
¡Necesitamos tu colaboración para futuras traducciones! si quieres
unirte a nosotros ponte en contacto con:
INSFLUG:
Francisco José Montilla, pacopepe@nova.es, FidoNet 2:345/402.22
LuCas:
1. Juan José Amor, jjamor@infor.es, FidoNet 2:341/12.19
2. Alfonso Belloso, alfon@bipv02.bi.ehu.es, FidoNet 2:344/17.2
Puedes obtener traducciones de:
FidoNet:
· Elektra (95) 4164934/4161749 33k6/14k4
· La Voix (95) 4275081/4275321 28k8/14k4
Si se da el caso de que carezcas de acceso a Internet, y no encuentras
los COMOs en alguna de estas dos direcciones, no dudes en ponerte en
contacto conmigo, y me encargaré de subirlas a alguna de las dos.
Por último, recordarte que un inmejorable lugar para estar informado,
así como consultar y discutir todo lo relacionado con LiNUX lo tienes
en FidoNet, en R34.LINUX.
Actualmente, ambos grupos poseen las siguientes listas de correo:
· LuCas: lucas@bipv02.bi.ehu.es
· INSFLUG: insflug@nova.es
Ambas son listas tipo majordomo; para suscribirte, por ejemplo a la
del INSFLUG, envía un email a majordomo@nova.es, con "subscribe
insflug" en el cuerpo del mensaje.
Dispones de todos los ``COMOs'' traducidos hasta ahora, así como
información puntual sobre el INSFLUG y temas relacionados en:
http://www.insflug.nova.es en sus versiones html, y listas para bajar,
en http://ftp.insflug.nova.es
Otro buen punto de búsqueda, consulta, y obtención de la documentación
traducida, en formato HTML, con links a los demás formatos, así como
las traducciones de las guías traducidas por LuCAS es:
http://www.infor.es/LuCAS/
junto con su ftp:
ftp://ftp.infor.es/pub/LuCAS/
Tanto el INSFLUG, como LuCAS, y todos los traductores implicados,
esperamos que esta traducción te haya sido de utilidad.