Saltar al contenido

Linux

Particiones en Linux

  • ¿Dónde instalo Linux?

Linux se puede instalar en cualquier disco que tengas en tu sistema y en cualquier particion del disco duro (Primaria o extendida).
No podras tener Linux en una particion compartida con otro sistema operativo, Linux necesita su propia particion/es para funcionar.

  •  ¿Qué es una particion? ¿Cómo creo una particion?

Particionar el disco duro es una manera de dividir el disco físico en varios discos lógicos. O lo que es lo mismo, al particionar un disco, dividimos el disco en varias particiones independientes unas de otras, creando la ilusión de que tenemos diferentes discos, cuando en realidad lo que tenemos es un solo disco físico dividido en partes.

Una particion es una de estas partes (divisiones) del disco.

Existen dos clases de particiones: primarias y extendidas. En un disco solo podras tener como maximo 4 particiones primaria y 1 extendida. En la particion extendida se podran definir todas (bueno tambien existe un limite, pero es alto) las unidades logicas que queramos. Con este sistema podemos tener una gran cantidad de particiones en nuestro disco.

Cualquier disco que tengamos en nuestro ordenador tiene al menos una particion primaria, que en la mayoria de los casos tiene un tamano equivalente al total del disco.

Unos ejemplos aclararan las cosas:

  • Un disco de 1Gb con una sola particion, tendra una particion primaria de 1Gb (total del disco).
  • Ese mismo disco podria tener 4 particiones primarias de 0.25Gb cada una, dando la ilusion de que tenemos 4 discos duros de 0.25Gb en vez de un solo disco de 1Gb.
  • Otra combinacion posible podria ser 4 particiones primarias de 0.10Gb y 1 extendida con 6 unidades logicas de 0.10Gb, en este caso pareceria que tenemos 10 discos duros de 0.10Gb cada uno.

Las combinaciones son multiples y variadas y dependeran de nuestros gustos y de lo que necesitemos.

Casi todos los sistemas operativos traen un programa con el que podemos crear, modificar, borrar las particiones de nuestro disco. En Ms-Dos/Windows de llama FDISK, este programa solo puede trabajar con particiones de Ms-Dos/Windows. En Linux tambien se llama FDISK (/sbin/fdisk), pero es un programa mas potente, capaz de trabajar y crear particiones tanto para Linux como otros sistemas operativos. Si vas a trabajar con Linux, es recomendable el uso del FDISK que viene con tu distribucion, para evitar problemas.

Al contrario que Ms-Dos, Windows, OS/2, las diferentes particiones en linux no se denominan C:, D:, E:, …., etc, existe una denominacion propia:

Si los discos son IDE:

  • /dev/hda: Disco duro IDE como master en el canal IDE 1.
  • /dev/hda1: Particion primaria 1 en /dev/hda
  • /dev/hda2: Particion primaria 2 en /dev/hda
  • /dev/hda3: Particion primaria 3 en /dev/hda
  • /dev/hda4: Particion primaria 4 en /dev/hda
  • /dev/hda5: Particion extendida 1 en /dev/hda
  • /dev/hda6: Particion extendida 2 en /dev/hda
  • …..
  • …..
  • /dev/hda16: Particion extendida 16 en /dev/hda
  • /dev/hdb: Disco duro IDE como esclavo en el canal IDE 1.
  • /dev/hdb1: Particion primaria 1 en /dev/hdb
  • ……..
  • ……..
  • /dev/hdc: Disco duro IDE como master en el canal IDE 2.
  • /dev/hdc1: Particion primaria 1 en /dev/hdc
  • ……..
  • ……..
  • /dev/hdd: Disco duro IDE como esclavo en el canal IDE 2.
  • /dev/hdd1: Particion primaria 1 en /dev/hdd
  • ……..
  • ……..

Si los discos son SCSI:

  • /dev/sda: Disco duro SCSI nr.1.
  • /dev/sda1: Particion primaria 1 en /dev/sda
  • ……..
  • ……..
  • /dev/sdb: Disco duro SCSI nr.2.
  • /dev/sdb1: Particion primaria 1 en /dev/sdb
  • ……..
  • ……..

IMPORTANTE: Es muy importante saber lo que se esta haciendo cuando trabajeis con programas que modifican la tabla de particiones de un disco. Al cambiar la tabla de particiones de vuestro disco, se pierden los datos contenidos en las particiones afectadas. Realizar copias de seguridad de los datos que querais mantener antes de usar FDISK.

  • ¿Porque necesito diferentes particiones?

El particionar el disco, es simplemente una manera de organizar tu disco duro. Podrás organizarlo con una sola particion o en varias. Es el usuario el que deberá decidir cuantas particiones tendra su disco, y el tamano de las mismas, hay que recordar, que al menos hay que tener una particion primaria.

Desventajas de tener vuestro disco dividido en diferentes particiones.

  • Ninguna

Ventajas en tener vuestro disco particionado en varias particiones:

  • Si teneis un error/problema en una de ellas, las demas no se veran afectadas.
  • Poder tener diferentes sistemas operativos en vuestra maquina, totalmente independientes unos de otros.
  • Poder tener vuestros archivos de datos en particiones totalmente independientes.
  • Poder borrar/cambiar el contenido de una particion, sin que esto afecte a las demas.

  • ¿Cuantas particiones necesito para Linux?

La respuesta rapida y facil es: recomendable al menos dos, una para el sistema/datos y otra para Swap. Usualmente se suelen tener tres, una para el sistema/programas (/), otra para los datos (/home) y otra para swap.

La respuesta larga y no tan facil es mas complicada de explicar: Todo dependera muchisimo del uso que se le vaya a dar al sistema.

Para sistemas que se utilicen de forma particular y por uno o pocos usuarios bastara con las dos/tres particiones antes mencionadas, esto evitara los problemas de saber que cantidad de espacio necesitan las diferentes particiones y el quedarnos sin espacio en alguna particion vital, mientras que nos sobra en otras.

Para sistemas servidores, con gran cantidad de servicios y usuarios es muy recomendable tener varias particiones/discos. Existe un documento (HOWTO: Multi Disk System Tuning) muy bueno y quizas complicado para el principiante que explica cuantas particiones y discos y que tamano deberian tener en funcion del uso que se le vaya a dar al sistema, lo podeis encontrar en http://www.nyx.net/~sgjoen/disk.html o en cualquier servidor con documentacion Howto. Otro documento (HOWTO: Linux Partition) mas sencillo, se puede encontrar enhttp://linux-es.uio.no/docs/HOWTO/mini/Partition.

  • ¿Qué es la Swap?

La swap es un espacio reservado en tu disco duro para poder usarse como una extension de memoria virtual de tu sistema. Es una técnica utilizada desde hace tiempo para hacer creer a los programas que existe mas memoria RAM de la que en realidad existe. Es el propio sistema operativo el que se encarga de pasar datos a la swap cuando necesita mas espacio libre en la RAM y viceversa.

En Linux, la memoria total disponible por el sistema estara formada por la cantidad de memoria RAM instalada + la swap disponible. El acceso a la swap (disco duro) es mas lento que el acceso a la memoria RAM, por lo que si nuestro ordenador esta muy cargado de trabajo y hace un uso intensivo de la swap, la velocidad del sistema disminuira. Un uso muy intensivo y continuado de la swap es un indicativo de que necesitamos mas memoria en nuestro sistema para que funcione desahogado con el uso que le estamos dando.

En linux generalmente se usa como minimo una particion dedicada a swap (aunque tambien se puede tener un fichero swap).

  • ¿Cuanta Swap necesito?
  • En equipos con memoria RAM de hasta 1 Giga debería ser igual de grande la SWAP que la RAM.
  • Entre 2 y 4 Gigas, debería ser la SWAP la mitad de grande que la RAM.
  • Con más de 4 Gigas no se debería sobrepasar los 2 Gigas de SWAP como mucho.

 


Tunnelling SSH over a SOCKS proxy

  • admin 

http://crysol.org/es/node/1355

Proxy SOCKS con SSH: más fácil imposible

Pequeña receta para montar un proxy SOCKS en tu PC para salir a internet a través de un túnel SSH.

Ingredientes

  • openssh
  • autossh
  • netcat-openbsd
  • tsocks

¿Para qué quiero yo esto?

Buena pregunta. Pues sin entrar en detalles «podríamos decir» que un proxy SOCKS es una buena forma de salir a Internet por un solo puerto aunque uses distintas aplicaciones y protocolos: web, jabber, FTP,…

¿Por qué querría yo hacer algo tan raro?

Pues eso es lo bueno, que tú no quieres. Pero a veces tu empresa, instituto, universidad, el Partido, etc. decide que si te concede la gracia de darte acceso al puerto 80 (y si acaso al 443) ya tienes bastante ¿«pa» qué más?

Así que, si tienes una máquina fuera (en tu casa por ejemplo) puedes utilizarla como proxy hacia Internet.

Configuración del proxy SOCKS (en el PC de casa)

Lo único que necesitas es una computadora al otro lado del firewall (en tu casa) con un servidor SSH no demasiado viejo que esté configurado para escuchar en el puerto 443, 80 o alguno de los que te permita acceder el firewall fascista de tu empresa. Algunos incluso te permiten usar el 21 (FTP). Llamaremos a esa máquina: micasa.example.net.

Abriendo el túnel (desde el PC del trabajo)

También necesitas SSH. Ejecuta lo siguiente en una consola:

$ ssh -N -D localhost:1080 micasa.example.net -p 443

Si no tienes configurada una clave pública para acceder a esa máquina (algo que te recomiendo) te pedirá la clave. Si todo va bien se quedará ahí haciendo su trabajo como buen túnel que es. No cierres esa consola. 1080 es el puerto estándar para SOCKS pero puedes usar otro si quieres.

Configurando las aplicaciones

Muchas aplicaciones de red (aunque no todas) tienen la posibilidad de utilizar un proxy. La ventana en cuestión tendrá una pinta similar a la siguiente. Esta concretamente es la de Firefox 3.5 y la puedes encontrar en Edit->Preferences->Advanced->Network->Settings:

 


 

Debes editarlo para que quede como en la figura, que corresponde con los datos de la consola de antes.

Y ya está, ahora todas las conexión que haga el navegador se las pedirá al servidor SSH de tu casa (que actúa de proxy SOCKS).

En lugar de hacer esto en cada aplicación, tienes la posibilidad de configurar el proxy globalmente y decir a las aplicaciones que usen la configuración del sistema. Por ejemplo en GNOME 2.30 se hace en System->Preferences->Network Proxy.

Doctor, el túnel se me cae

Pues sí, los túneles tienen la mala costumbre de caerse y dejarte tirado si se rompe la conexión. Pero hay solución, se llama autossh (es paquete Debian). Y para usarlo simplemente ejecuta el comando de antes, cambiando ssh por autossh:

$ autossh -N -D localhost:1080 micasa.example.net -p 443

En este casi si que es casi obligado usar la clave pública porque si no, cuando intente recuperar el túnel, va a pedir la clave y la gracia de autossh (que es automático) no servirá de mucho.

¿Y qué pasa con SSH?

Es decir, ¿cómo puedes conectar por SSH con una máquina remota? Pues hay que hacer que el tráfico de la conexión SSH pase también a través del túnel, esto es lo que se llama «socksificar» un cliente. Es fácil socksificar el cliente SSH gracias a la opción ProxyCommand, que como su nombre indica (más o menos) sirve para conectar a un servidor SSH a través de un proxy. Aquí va un ejemplo

$ ssh -o "ProxyCommand /bin/nc.openbsd -x localhost %h %p" server.minimor.com

«socksificando» lo que haga falta

Hay muchas aplicaciones (la mayoría) que no fueron diseñadas para utilizar proxies SOCKS. Sin embargo hay un medio muy sencillo para lograr que usen el proxy sin que lo sepan.

Se basa en interceptar la invocación a la llamada connect() de la librería de sockets, de modo que cuando la aplicación abra ingenuamente una conexión normal hacia un servidor remoto, los datos serán enviados de forma transparente hacia el proxy SOCKS configurado. Esta magia (que no es tal) es posible gracias a la precarga de librería de los sistemas GNU (LD_PRELOAD) y el programa tsocks que aprovecha este principio.

Después de instalar el paquete tsocks tienes que configurar el proxy SOCKS que debe usar. Si has seguido las instrucciones anteriores, edita el fichero/etc/tsocks.conf y cambia el valor de la opción «server» para que quede así (se muestran las últimas líneas del fichero):

server = 127.0.0.1
server_type = 5
server_port = 1080

Y para socksificar cualquier programa simplemente ejecuta algo como:

$ tsocks claws-mail

o bien:

$ tsocks          # <— esto abre una nueva shell socksificada
$ claws-mail

looping the loop

Y si lo que quieres es conectar tu máquina a una VPN cuyo servidor está al otro lado del firewall. Un tema interesante…

[ToDo]

Referencias

Linux Directory Structure

  • admin 

Note: Files are grouped according to purpose. Ex: commands, data files, documentation.
Parts of a Unix directory tree. See the FSSTND standard (Filesystem standard)

/			Root
|---root		The home directory for the root user
|---home		Contains the user's home directories
|    |----ftp		Users include many services as listed here
|    |----httpd
|    |----samba
|    |----user1
|    |----user2
|---bin			Commands needed during bootup that might be needed by normal users
|---sbin		Like bin but commands are not intended for normal users.  Commands run by LINUX.
|---proc		This filesystem is not on a disk.  Exists in the kernels imagination (virtual).  This directory
|    |			Holds information about kernel parameters and system configuration.
|    |----1		A directory with info about process number 1.  Each process
|				has a directory below proc.  
|---usr			Contains all commands, libraries, man pages, games and static files for normal
|    |			operation.
|    |----bin		Almost all user commands.  some commands are in /bin or /usr/local/bin.
|    |----sbin		System admin commands not needed on the root filesystem.  e.g., most server 
|    |			programs.
|    |----include	Header files for the C programming language.  Should be below /user/lib for
|    |			consistency.
|    |----lib		Unchanging data files for programs and subsystems
|    |----local		The place for locally installed software and other files.
|    |----man		Manual pages
|    |----info		Info documents
|    |----doc		Documentation for various packages
|    |----tmp
|    |----X11R6		The X windows system files.  There is a directory similar to usr below this 
|    |			directory.
|    |----X386		Like X11R6 but for X11 release 5
|---boot		Files used by the bootstrap loader, LILO.  Kernel images are often kept here.
|---lib			Shared libraries needed by the programs on the root filesystem
|    |----modules 	Loadable kernel modules, especially those needed to boot the system after
|			 disasters.
|---dev			Device files for devices such as disk drives, serial ports, etc.
|---etc			Configuration files specific to the machine.
|    |----skel		When a home directory is created it is initialized with files from this directory
|    |----sysconfig 	Files that configure the linux system for networking, keyboard, time, and more.
|---var			Contains files that change for mail, news, printers log files, man pages, temp files
|    |----file
|    |----lib		Files that change while the system is running normally
|    |----local		Variable data for programs installed in /usr/local.
|    |----lock		Lock files.  Used by a program to indicate it is using a particular device or file
|    |----log		Log files from programs such as login and syslog which logs all logins,
|    |			logouts, and other system messages.
|    |----run		Files that contain information about the system that is valid until the system is
|    |			next booted
|    |----spool		Directories for mail, printer spools, news and other spooled work.
|    |----tmp		Temporary files that are large or need to exist for longer than they should in
|    |			/tmp.
|    |----catman	A cache for man pages that are formatted on demand
|---mnt			Mount points for temporary mounts by the system administrator.
|---tmp			Temporary files.  Programs running after bootup should use /var/tmp.

Discos y gestión filesystems

  • admin 

Respecto a las unidades de almacenamiento:

  • IDE 
    • /dev/hda disco master (primer conector IDE)
    • /dev/hdb disco slave (del primer conector IDE)
    • /dev/hdc disco master (segundo conector IDE)
    • /dev/hdd disco slave (segundo conector IDE)
  • SCSI
    • /dev/sda Scsi0
    • /dev/sdb Scsi1
  • Disquetes
    • /def/fdx (dónde x número disquetera empezando en 0). Hay diferentes dispositivos, dependiendo de la capacidad del disquete, por ejemplo, el disquete de 1.44MB en la disquetera A sería /dev/fd0H1440.

Respecto a las particiones presentes, el número que sigue al dispositivo representa el índice de la partición dentro del disco, y es tratado como un dispositivo independiente:/dev/hda1 primera partición del primer disco IDE, o /dev/sdc2, segunda partición del tercer dispositivo SCSI.

En el caso de los discos IDE, éstos permiten cuatro particiones denominadas primarias y un mayor número en extendidas (o lógicas). así, si /dev/hdan, n será siempre inferior o igual a 4, se tratará d euna partición primaria, si no, se tratará de una partición lógica con n superior o igual a 5.

Con los discos y los sistems de ficheros (filesystems) asociados, los procesos básicos que podemos realizar se engloban en:

  1. Creacción de particiones –> fdisk, o parecidos (cfdisk, sfdisk)
  2. Formateo de disquetes –> fdformat, superformat,mformat
  3. Creacción de filesystems Linux –> mkfs. Hay versiones específicas para crear filesystems diferentes: mkfs.ext2, mkfs.ext3, y también filesystems no Unix: mkfs.ntfs, mkfs.vfat,mkfs.msdos,mkfs.minix u otros. Ora cosa particular es la orden mkswap que permite crear áreas de swap en particiones que, más tarde, se pueden activar o desactivar con swapon y swapoff.
  4. Montaje de los filesystems: mount, unmount.
  5. Verificación de estado: fsck. También existen versiones particulares para otros sistemas de ficheros: fsck.ext2, fsck.ext3, fsck.vfat,fsck.msdos,etc… Se recomienda desmontar las particiones para realizar elp roceso si se detectan errores y hay que aplicar correcciones.
  6. Backup: tar, cpio, dd,etc…
  7. Utilidades diversas: badblocks para encontrar bloques defectuosos en el dispositivo; dumpe2fs para obtener información sobre filesystems linux; tune2fs permite hacer procesos de tunning de filesystems Linux de tipo ext2,ext3 o ext4 y ajustar diferentes parametros de comportamiento.

Yum Command Options

  • admin 

Basic Yum Commands and how to use them

http://yum.baseurl.org/wiki/YumCommands

This is not an exhaustive list of all yum commands but it is a list of the basic/common/important ones. For a complete list see the yum man page.

   yum list [available|installed|extras|updates|obsoletes|all|recent] [pkgspec]

This command lets you list packages in any repository enabled on your system or installed. It also lets you list specific types of packages as well as refine your list with a package specification of any of the package’s name, arch, version, release, epoch.

   yum list

By default ‘yum list’ without any options will list all packages in all the repositories and all the packages installed on your system. Note: ‘yum list all’ and ‘yum list’ give the same output.

   yum list available

Lists all the packages available to be installed in any enabled repository on your system.

   yum list installed

This is equivalent to rpm -qa. It lists all the packages installed on the system.

   yum list extras

This command lists any installed package which no longer appears in any of your enabled repositories. Useful for finding packages which linger between upgrades or things installed not from a repo.

   yum list obsoletes

This command lists any obsoleting relationships between any available package and any installed package.

   yum list updates

This command lists any package in an enabled repository which is an update for any installed package.

   yum list recent

This command lists any package added to any enabled repository in the last seven(7) days.

   yum list pkgspec

This command allows you to refine your listing for particular packages.

Examples of pkgspecs:

      yum list zsh 
      yum list joe\* 
      yum list \*.i386 
      yum list dovecot-1.0.15
   yum install/remove/update

….

   yum check-update

Exactly like yum list updates but returns an exit code of 100 if there are updates available. Handy for shell scripting.

   yum grouplist
   yum groupinfo
   yum groupinstall
   yum groupupdate
   yum groupremove

Please see the YumGroups page on this wiki for information about the above commands.

   yum info

This displays more information about any package installed or available. It takes the same arguments as yum list but it is best run with a specific package name or glob. Example:

     $ yum info yum
     Installed Packages
     Name       : yum
     Arch       : noarch
     Version    : 3.2.20
     Release    : 3.fc10
     Size       : 2.5 M
     Repo       : installed
     Summary    : RPM installer/updater
     URL        : http://yum.baseurl.org/
     License    : GPLv2+
     Description: Yum is a utility that can check for and automatically download and
                : install updated RPM packages. Dependencies are obtained and downloaded
                : automatically prompting the user as necessary.
  yum search

This allows you to search for information from the various metadata available about packages. It can accept multiple arguments. It will output the packages which match the most terms first followed by the next highest number of matches, etc. Specifically yum search looks at the following fields: name, summary, description, url. If you’re searching for what package provides a certain command try yum provides instead.

Search example:

$ yum search python rsync ssh
========================= Matched: python, rsync, ssh ==========================
rdiff-backup.i386 : Convenient and transparent local/remote incremental
                  : mirror/backup

============================ Matched: python, rsync ============================
cobbler.noarch : Boot server configurator

============================= Matched: python, ssh =============================
denyhosts.noarch : A script to help thwart ssh server attacks
pexpect.noarch : Pure Python Expect-like module
python-paramiko.noarch : A SSH2 protocol library for python
python-twisted-conch.i386 : Twisted SSHv2 implementation

============================= Matched: rsync, ssh ==============================
duplicity.i386 : Encrypted bandwidth-efficient backup using rsync algorithm
pssh.noarch : Parallel SSH tools
   yum provides/yum whatprovides

This command searches for which packages provide the requested dependency of file. This also takes wildcards for files. Examples:

$ yum provides MTA
2:postfix-2.5.5-1.fc10.i386 : Postfix Mail Transport Agent
Matched from:
Other       : MTA

exim-4.69-7.fc10.i386 : The exim mail transfer agent
Matched from:
Other       : MTA

sendmail-8.14.3-1.fc10.i386 : A widely used Mail Transport Agent (MTA)
Matched from:
Other       : Provides-match: MTA

$ yum provides \*bin/ls
coreutils-6.12-17.fc10.i386 : The GNU core utilities: a set of tools commonly
                            : used in shell scripts
Matched from:
Filename    : /bin/ls
   yum shell

….

   yum makecache

Is used to download and make usable all the metadata for the currently enabled yum repos. This is useful if you want to make sure the cache is fully current with all metadata before continuing.

   yum clean

During its normal use yum creates a cache of metadata and packages. This cache can take up a lot of space. The yum clean command allows you to clean up these files. All the files yum clean will act on are normally stored in /var/cache/yum.

Example commands and what they do:

        yum clean packages

This cleans up any cached packages in any enabled repository cache directory.

        yum clean metadata

This cleans up any xml metadata that may have been cached from any enabled repository.

        yum clean dbcache

Yum will create or download some sqlite database files as part of its normal operation. This command clean up the cached copies of those from any enabled repository cache.

        yum clean all

Clean all cached files from any enabled repository. Useful to run from time to time to make sure there is nothing using unnecessary space.