linux-gestión de dispositivos2012

25

Upload: bryansersoker

Post on 06-Aug-2015

24 views

Category:

Documents


0 download

DESCRIPTION

Linux-Gestión de dispositivos2012

TRANSCRIPT

Page 1: Linux-Gestión de dispositivos2012

                                               

Page 2: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  2    

Tabla  de  contenido  

1.   INTRODUCCIÓN…………………………………………………………………………….. 3  1.1.   Archivos de dispositivo tipo bloque.………………………………………………………………….. 4  1.2.   Archivos de dispositivo modo carácter.……………………………………………………………….. 4  

2.   MONTAR Y DESMONTAR S ISTEMAS DE ARCHIVOS.………………………………………….. 5  2.1.   Montar el sistema de archivos. ……………………………………………………………………… 5  2.2.   Montaje de sistemas de archivos durante el arranque.…………………………………………………. 6  2.2.1.   OPCIONES  DE  FSTAB.…………………………………………………………………………...………..    7  2.2.2.   EJEMPLO  DE  ARCHIVO  /ETC/FSTAB:………………………………………………………………...………..      8  2.3.   Conocer el espacio usado por un sistema de archivos.………………………………………………….. 8  2.4.   Desmontar sistemas de archivos.………………………………………………………………...…... 9  2.5.   Creación y formateo de un sistema de archivos.……………………………………………………….. 10  

3.   MANTENIMIENTO DE LOS S ISTEMAS DE ARCHIVOS.………………………………………… 11  

4.   IMPRESIÓN EN L INUX.………………………………………………………………...…… 12  4.1.   Funcionamiento de la impresión.………………………………………………………………...…… 13  4.2.   El proceso daemon lpd. ………………………………………………………………...…………... 13  4.2.1.   EL  ARCHIVO  /ETC/PRINTCAP.…………………………………………………………………………………………………………………………...……………..  14  4.2.2.   CONSIDERACIONES  SOBRE  LA  IMPRESIÓN.……………………………………………………………………………………………………………………………….  15  4.3.   La orden lpr.………………………………………………………………...……………………... 15  4.4.   La orden lpq.………………………………………………………………...…………………….. 16  4.5.   La orden lprm.………………………………………………………………...…………………… 16  4.6.   La orden lpc.………………………………………………………………...……………………. 17  4.7.   CUPS. ………………………………………………………………...…………………………. 17  4.7.1.   INSTALAR  UNA  IMPRESORA  LOCAL  CON  CUPS:  ……………………………………………………………………………………………………………………    19  4.7.2.   COMPARTIR  NUESTRA  IMPRESORA:……………………………………………………………………………………………………………………………………………      23  4.7.3.   IMPRIMIR  DESDE  LINUX  EN  UNA  IMPRESORA  WINDOWS:………………………………………………………………………………………………………    25    

Page 3: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  3    

   

1.  Introducción    En  Linux  cada  dispositivo  representa  un  sistema  de  archivos.  Los  sistemas  de  archivos  son  la  base  de  todos  los  datos  en  un  sistema  Unix/Linux.  Ya  hemos  visto  en  un  capítulo  anterior  en  qué  se  basa  su   estructura   y   cuáles   son   los   directorios   “estándar”   de   una   instalación,   así   como   las   órdenes  esenciales  para  su  gestión.    Desde  el  punto  de  vista  del  usuario  la  estructura  de  árbol  del  sistema  de  archivos  aparece  como  una  entidad   uniforme:   lo   único   que   se   ven   son   directorios   y   archivos.   En   realidad,   algunos   de   los  directorios  del  árbol  pueden  componer  distintas  particiones  del  disco,  situadas  en  diferentes  discos,  e   incluso,   dado   el   caso,   en   diferentes   computadoras.   Cuando   una   de   esas   particiones   de   disco   se  anexa   al   árbol   a   partir   de   un   directorio   conocido   como   punto   de   montaje,   éste   y   todos   los  directorios  por  debajo  de  él  conforman  un  subsistema  de  archivos.    El  directorio  /dev  contiene  archivos  especiales  que  se  conocen  como  archivos  de  dispositivos.  Estos  archivos   se   utilizan   para   acceder   a   los   distintos   tipos   de   hardware   que   hay   en   el   sistema.   Por  ejemplo,   el   archivo   /dev/mouse   sirve   para   poder   leer   las   entradas   del   ratón.   Al   organizar   los  dispositivos  hardware  de  este  modo  Linux  hace  que  la  interfaz  correspondiente  parezca  un  archivo.  Esto   significa   que   la   mayoría   de   las   veces   puede   usarse   la   misma   sintaxis   usada   para   gestionar  archivos  en  la  realización  de  operaciones  con  dispositivos.  Muchos  de  los  dispositivos  del  directorio  /dev  están  en  grupos  lógicos.    Algunos  de  los  más  utilizados  son:    

§ /dev/console  :   Hace   referencia   a   la   consola   del   sistema,   que   es   el   monitor   de   la  computadora.    

§ /dev/hd   :   Es   la   interfaz   de   dispositivo   para   las   unidades   de   disco   duro   con  controladora  IDE1.  El  dispositivo  /dev/hda1  hace  referencia  a  la  primera  partición  del  disco  duro  hda.  El  dispositivo  /dev/hda  hace  referencia  al  disco  hda  en  su  totalidad.    

§ /dev/sd   :   Es   la   interfaz   de   dispositivo   para   discos   SCSI   o   SATA.   En   los   discos   y  particiones   se   aplican   las   mismas   convenciones   que   para   los   discos   IDE.   Los  dispositivos  de  almacenamiento  con  conexión  USB  (pendrives,  HDs  externos)  usan  esta  interfaz  también.    

§ /dev/fd  :  Estos  archivos  proporcionan  soporte  para  unidades  de  disco  flexible  (floppy  disk).   /dev/fd0   es   la   primera   unidad   de   diskette   (unidad   A   en   DOS)   y   /dev/fd1   la  segunda.  

                                                                                                                           1   Integrate   Drive   Electronics   (Electrónica   de   unidades   avanzadas).   Una   unidad   de   disco   que   contiene   su   propia  electrónica  de  control  eliminando  así  la  necesidad  de  emplear  una  ranura  de  expansión  de  la  computadora.  

Gestión  de  Dispositivos  

Page 4: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  4    

§ /dev/st  :   Es  el  dispositivo  para  unidades  de  cinta  magnética  con  controladora  SCSI.    

§ /dev/cdrom    y  /dev/cdrw  :  Interfaz  para  CD-­‐ROMs  y  grabadoras  de  CD.  En  realidad  son  dos  enlaces  simbólicos  al  dispositivo  /dev/sr  o  al  /dev/scd.  

 § /dev/tty   :   Estos   archivos   proporcionan   distintas   consolas   para   las   entradas   de  

usuario.   El   nombre   procede   de   cuando   a   las   terminales   se   les   denominaba   teletipos.  Bajo  Linux  proporcionan   soporte   a   las   consolas   virtuales   a   las   que   se  puede   acceder  pulsando   [CTRL]+[ALT]+[F1..F6].   Estas   consolas   proporcionan   sesiones  independientes   de   entrada   local   simultánea.   A   la   consola   gráfica   se   accede   pulsando  [CTRL]+[ALT]+[F7].    

 § /dev/pty    :Los   dispositivos   pty   proporcionan   soporte   para   pseudoterminales.   Se  

utilizan  para  sesiones  de  entrada  remotas  como,  por  ejemplo,  las  que  utiliza  telnet.    

§ /dev/ttyS  :  Son  los  puertos  serie  de  la  computadora.  /dev/ttyS0  corresponde  a  COM1  bajo   DOS   y   /dev/ttyS1   a   COM2.   Si   se   tiene   un   ratón   serie   /dev/mouse   es   un   enlace  simbólico  a  un  dispositivo  ttyS  (generalmente  ttyS0).  

 § /dev/cua    :  Son  dispositivos  especiales  utilizados  con  modems.  

 § /dev/null   :    Es  un  dispositivo  especial.  Esencialmente  es  un  pozo   sin   fondo.  Todo   lo  

que  se  envía  a  este  dispositivo  se  pierde.    

1.1. Archivos de disposit ivo t ipo bloque.  Son  aquellos  que  se  crean  para  acceder  a  dispositivos  que  transfieren  datos  en  bloques  que  suelen  ser  de  longitud  fija  (de  512,  1024  o  2048  bytes  normalmente),  a  través  de  los  buffers  de  entrada  y  salida.  Son  dispositivos  de  almacenamiento  masivo  y  acceso  aleatorio  tales  como  discos  y  algunas  cintas  magnéticas  que  tienen  un  sistema  de  archivos  “montable”.  Estos  archivos  no  se  crean  con  una  llamada  normal  del  sistema  (creat)  sino  con  mknod  2(make  node).  Para  borrarlos  podemos  utilizar  rm.    Las  operaciones  de  entrada/salida  con  estos  dispositivos  se  realizan  siempre  a  través  de  los  buffers  caché  con  el  objeto  de  acelerar  los  accesos.  Estos  buffers  por  lo  general  contienen  aquellos  bloques  de   datos   más   recientemente   utilizados.   Normalmente   los   dispositivos   de   bloque   se   usan   para  montar  sistemas  de  archivos,  aunque  pueden  tener  otro  uso.  

1.2. Archivos de disposit ivo modo carácter.  Se  utilizan  para  acceder  a  dispositivos  que   trabajan  en  modo  carácter   como   impresoras,  plotters,  terminales,  cintas  magnéticas  e  incluso  algunos  discos.  Por  lo  general  son  cualquier  dispositivo  que  no   dispone   de   un   sistema   de   datos   “montable”.   Se   denominan   así   porque   la   entrada/salida   se  realiza  sin  acceder  a  los  buffers,  es  decir,  carácter  a  carácter.  Se  crean  con  una  llamada  mknod  y  se  pueden  borrar  con  rm.      

                                                                                                                           2  mknod  se  utiliza  para  crear  archivos  de  dispositivo  por  bloques  o  por  caracteres.  Creat  se  utiliza  para  crear  archivos  especiales  (pueden  ser  de  dispositivo  o  no)  y  devuelve  un  descriptor  si  se   le  suministra  un  pathname.  Los  descriptores  son   números   suministrados   por   el   kernel,   normalmente   no  muy   altos,   que   representan   algo   en   el   sistema   a   lo   que   se  puede   enviar   bytes   o  desde  donde   se  pueden   leer.   En  UNIX  muchas   cosas   se  pueden  usar   como  descriptores,   a   saber:  tuberías,  sockets  (conexiones  de  red)  o  conexiones  con  periféricos.  Las  operaciones  que  se  pueden  realizar  sobre  ellos  son  read  y  write.  

Page 5: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  5    

Algunos  dispositivos  podrán  hacer  E/S  en  los  dos  modos,  por   lo  que  disponen  de  dos  archivos  de  dispositivo:   uno   para   modo   carácter   y   otro   para   modo   bloque.   Los   discos,   cintas   magnéticas   y  cartuchos  deberán  disponer  de  los  dos,  ya  que  pueden  tener  sistemas  de  archivo  montables.      2. Montar  y  desmontar  sistemas  de  archivos.  

2.1. Montar el s istema de archivos.  Para  montar  un  sistema  de  archivos  en  el  árbol  de  directorios  Linux  es  necesario  disponer  de  una  partición  de  disco  duro  o  cualquier  otro  dispositivo  de  E/S.  También  hay  que  asegurarse  de  que  el  directorio  sobre  el  que  se  va  a  montar  el  sistema  (el  punto  de  montaje)  existe  realmente,  puesto  que  el  hecho  de   intentar  montar  un  sistema  de  archivos  no  crea  el  punto  de  montaje.  Después  de  montar   el   sistema   todos   sus   directorios   y   ficheros   aparecerán   bajo   el   directorio   utilizado   como  punto  de  montaje.      Linux  utiliza  la  orden  mount  para  montar  un  sistema  de  archivos.  Posee  la  sintaxis  siguiente:    

   Esta  orden,  en  principio,    sólo  puede  ser  utilizada  por  el  superusuario,  de  esta  forma  se  refuerza  la  seguridad  del  sistema.  Existen  paquetes  de  software  que  permiten  al  resto  de  los  usuarios  montar  sistemas  de  archivos  específicos,  especialmente  disquetes.      Si  se  utiliza  mount  sin  argumentos  se  listan  todos  los  sistemas  de  archivos  montados.    Tanto  mount  como  umount3  mantienen  esta  lista  en  el  archivo  /etc/mtab.      El  comando  mount  puede  aceptar  varios  modificadores,  a  saber:    

-­‐f   (fake)  Finge  que  se  monta  el  sistema  de  archivos,  es  decir,  hace  que  se  realicen  todas  las  funciones  excepto  la  llamada  del  montaje  en  sí.  

-­‐a   (auto)   Monta   aquellos   sistemas   de   archivos   incluídos   en   /etc/fstab   excepto  aquellos  cuya  línea  contenga  la  cláusula  noauto.  

-­‐v   (verbose)  Modalidad  detallada.  Proporciona   información  adicional  acerca  de   lo  que  está  tratando  de  hacer  la  orden.  

-­‐w   Se  va  a  montar  el  sistema  con  permisos  de  lectura/escritura  (modo  por  defecto).  -­‐r   Idem.  solo  lectura.  -­‐n   Monta  sin  escribir  en  /etc/mtab.  Esto  es  necesario  cuando  el  directorio  /etc  está  en  

un   sistema   de   archivos   de   solo   lectura   (por   ejemplo   cuando   ejecutamos   Linux   en  modo  Live  desde  el  CD-­‐ROM).  

-­‐F   Hace   que  mount   se   bifurque   de   forma   que   los   sistemas   de   archivos   se   montan  simultáneamente   en   paralelo.   De   esta   forma   se  montan  más   rápidamente,   pero   el  orden  es  arbitrario.  Se  usa  conjuntamente  con  –a.  

-­‐t  <tipo>   Especifica  el  tipo  de  sistemas  de  archivos  que  se  va  a  montar.  Entre  los  tipos  válidos  están  minix,  ext,  ext2,    ext3,  ext4,  msdos,  hpfs,  proc,  nfs,  umsdos,  sysv,  ntfs-­‐3g,  vfat  e  iso9660.  

 § minix   Es  un  sistema  de  archivos  local  que  admite  nombres  de  archivo  entre  

14  y  30  caracteres.                                                                                                                              3  Desmonta  sistemas  de  archivos.  

mount  [modificadores]  [dispositivo    punto-­‐de-­‐montaje]  

Page 6: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  6    

§ ext   Utiliza   nombres   de   archivos  más   largos   e   inodos  más   grandes   (este  sistema  ha  sido  reemplazado  por  el  ext2  y  no  debería  utilizarse).  

§ ext2   Es  el  sistema  de  archivos  nativo  de  Linux.  Ha  sido  reemplazo  por  ext3  y   ext4,   siendo   relegado   a   sistemas   de   archivos   en   dispositivos   de  almacenamiento  de  poca  capacidad  como  disquetes  o  pendrives).  

§ nfs   Es   un   sistema   de   archivos   para   montar   particiones   desde   sistemas  remotos.  

§ sysv   Es  un  sistema  de  archivos  Unix  System  V.  § msdos   Es  un  sistema  de  archivos  local  para  particiones  MS-­‐DOS.  § vfat   Sistema  de  archivos  FAT32.  § umsdos   Idem.   UMSDOS.   Se   utiliza   para   instalar   Linux   en   una   partición   MS-­‐

DOS.  § ntfs   Sistema   de   Archivos   de  Windows   XP   y  Windows   Server   (ntfs-­‐3g   en  

SuSe  10.3  y  posteriores,  así  como  en  Ubuntu).  § iso9660 Sistema   local   de   archivos   utilizado   para   unidades   de   CDROM.   Es   el  

sistema  predeterminado.      § proc   Se  utiliza  para  el  suministro  de  información  de  procesos4.    

Si  el  único  argumento  de  mount  es  –t  lista  los  sistemas  de  archivos  montados  del  tipo  especificado.  

Ejemplo:  Montar   la  unidad  de  CD-­‐ROM  y  una  unidad  de  disquete  con   formato  MSDOS  (se  supone  que  los  puntos  de  montaje  existen):  

 [gandalf@lotr:˜]  #  mount  –tiso9660  /dev/cdrom      /mnt/cdrom    [gandalf@lotr:˜]  #  mount  –tmsdos  /dev/fd0      /mnt/floppy    

Si  un  sistema  de  archivos  no  se  monta  correctamente  es  conveniente  utilizar  la  orden  mount  con  los  modificadores  v  y  f  para  comprobar  qué  es  lo  que  hace  mount.  Aparecerá  un  listado  detallado  de  los  pasos  llevados  a  cabo.      Normalmente   sólo   el   superusuario  puede  montar   sistemas  de   archivos.   Sin   embargo   cuando  una  línea   del   archivo   /etc/fstab   contiene   la   cláusula  user   en   su   columna   opciones   cualquiera   podrá  montar  el  sistema  de  archivos  correspondiente.    

2.2. Montaje de sistemas de archivos durante el arranque.  Normalmente  los  sistemas  de  archivos  que  utiliza  una  plataforma  Linux  no  cambian.  Por  esta  razón,  es  fácil  especificar  una  lista  de  sistemas  de  archivos  que  Linux  monta  al  arrancar  el  sistema  y  que  desmonta   cuando   se   apaga.   Esos   sistemas   de   archivos   se   listan   en   archivos   especiales   de  configuración  como  puede  ser  el  archivo  /etc/fstab  (filesystem  table).  Cada  línea  tiene  que  tener  los  siguientes  campos  separados  por  espacios  o  tabuladores:  

<sistema de archivos> <punto de montaje> <Tipo> <opciones> <frecuencia de volcado> <nº secuencia>

 

                                                                                                                           4   El   sistema   de   ficheros   /proc   se   utiliza   para   almacenar   información   acerca   de   los   procesos   del   sistema,   memoria  disponible   y   otros   datos   relacionados.   Si   /proc   no   está  montado,   no   funcionarán   comandos   como   ps.   Este   sistema   de  ficheros  no  está  asociado  a  ningún  dispositivo  o  archivo  especial  y  al  montarlo  se  puede  usar  una  palabra  arbitraria,  como  por  ejemplo  proc,  en  vez  de  una  especificación  de  dispositivo.  

Page 7: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  7    

 Argumento   Descripción  <sistema  de  archivos>    

Especifica  el  dispositivo  especial  por  bloques  o  el  sistema  de  archivos  remoto  que  se  va  montar.  

<punto  de  montaje>  

Especifica  el  directorio  a  partir  del  cual  se  va  a  montar  el  sistema  de  archivos.  Para  sistemas  especiales  de  intercambio  (swap)  hay  que  utilizar  la  palabra  none  que  hace  que  los  archivos  de  intercambio  estén  activos  pero  no  visibles  en  el  árbol  de  archivos.  

<tipo>     Especifica  el  tipo  de  sistema  que  vamos  a  montar.  Se  admiten  los  mismos  tipos  vistos  anteriormente  con  el  modificador  –t.  

<opciones  de  montaje>  

Lista de  opciones  separadas  por  comas  para  el  sistema  de  archivos.  

<frecuencia  de  volcado>  

Especifica  la  frecuencia  con  la  que  deben  hacerse  copias  de  seguridad    de  archivos  con   la  orden  dump.  Si  este  campo  no  existe,  dump   interpreta  que  no  es  necesario  hacer  copias  de  seguridad.  

<Número  de  secuencia>  

Especifica   el   orden   en   que   deben   comprobarse   los   sistemas   de   archivos  por   la   orden   fsck   (que   veremos   más   adelante)   cuando   se   arranca   el  sistema.  El   sistema  raíz  debería   tener  un  valor  de  1.  El   resto  de  sistemas  deberían   tener   valor   2.   Si   no   se   especifica   un   valor   no   se   comprobará   la  consistencia  del  sistema  de  archivos  durante  el  arranque.  Los  sistemas  de  archivos   se   chequearán   secuencialmente   si   residen  en   el  mismo  disco,   al  mismo  tiempo  si  residen  en  discos  diferentes.  

2.2.1. Opciones de fstab.

Argumento   Descripción  async   Toda   la   Entrada/Salida   al   sistema   de   archivos   debe   realizarse   de   forma  

asíncrona.  atime   Actualizar  el  tiempo  de  acceso  al  i-­‐node  para  cada  acceso.  auto   El  sistema  de  archivos  se  puede  montar  con  mount  –a.  defaults   Emplea  las  opciones  predeterminadas  (rw,  suid,  dev,  exec,  auto,  nouser,  

async)  dev   Interpreta  dispositivos  especiales  de  caracteres  o  bloques  en  el  sistema  de  

archivos.  exec   Permite  la  ejecución  de  binarios.  noatime   No  actualizar  los  tiempos  de  acceso  al  i-­‐node.  Por  ejemplo,  para  una  acceso  

más  rápido  en  el  directorio  de  ‘spool’  de  las  noticias  o  grupos  de  discusión  (‘news’)  o  un  servidor  de  noticias.  

noauto   Sólo  puede  montarse  el  sistema  de  archivos  explícitamente.  nodev   No   reconocer   dispositivos   especiales   en   bloques   o   caracteres   en   este  

sistema  de  archivos.  noexec   No   permitir   la   ejecución   de   archivos   binarios.   Puede   ser   útil   en   un  

servidor  que   tiene  sistemas  de  archivos  con  archivos  binarios  para  otras  arquitecturas  distintas  a  la  suya.  Por  ejemplo,  cuando  vemos  una  partición  Windows  bajo  Linux.  

nosuid   No  permitir  el  efecto  de  los  bits  suid  y  sgid.  nouser   Prohibir   a   un   usuario   ordinario   montar   el   sistema   de   archivos.   Es   lo  

predeterminado.  remount   Intentar   remontar   un   sistema   de   archivos   ya   montado.   Se   emplea  

normalmente   para   cambiar   la   opciones   de   montaje   (por   ejemplo   para  pasar  un  sistema  de  solo  lectura  a  lectura-­‐escritura.  

Page 8: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  8    

ro   Se  monta  para  solo  lectura.  rw   Se  monta  para  lectura-­‐escritura.  suid   Se  permite  el  efecto  de  los  bits  suid  y  sgid.  sync   Toda   la   Entrada/Salida   al   sistema   de   archivos   debe   realizarse   de   forma  

síncrona.  user   Se  permite  a  un  usuario  ordinario  montar  el  sistema  de  archivos.  Implica  

las  opciones  noexec,  nosuid  y  nodev.  

2.2.2. Ejemplo de archivos /etc/fstab:  #device   directory     type     options   frecuency   sequence  /dev/hda3                /       ext2     defaults     1     1  /dev/hda2            swap       swap     defaults     0     0  /dev/fd0          /mnt/floppy                ext2     noauto                0     0  /dev/cdrom      /mnt/cdrom     iso9660   noauto,ro     0     0  none                /proc                  proc     defaults     0     0  none              /dev/pts     devpts       mode=0622     0     0    En  Ubuntu:    #  /etc/fstab:  static  file  system  information.  #  #  Use  'blkid  -­‐o  value  -­‐s  UUID'  to  print  the  universally  unique  identifier  #  for  a  device;  this  may  be  used  with  UUID=  as  a  more  robust  way  to  name  #  devices  that  works  even  if  disks  are  added  and  removed.  See  fstab(5).  #  #  <file  system>  <mount  point>      <type>    <options>              <dump>    <pass>  proc                        /proc                      proc        defaults                      0              0  #  /  was  on  /dev/sda1  during  installation  UUID=17b0e005-­‐0a36-­‐490a-­‐bca2-­‐8961337ce20a  /  ext4    errors=remount-­‐ro        0    1  #  swap  was  on  /dev/sda5  during  installation  UUID=0781910d-­‐28ac-­‐487c-­‐ba42-­‐880dc2c9aa36  none        swap        sw          0              0  /dev/scd1              /media/cdrom0      udf,iso9660  user,noauto,exec,utf8        0              0  /dev/scd0              /media/cdrom1      udf,iso9660  user,noauto,exec,utf8        0              0  /dev/fd0                /media/floppy0    auto                rw,user,noauto,exec,utf8  0              0  #Parallels  Shared  Folder  mount  none                  /media/psf      prl_fs      sync,nosuid,nodev,noatime,share      0              0    Si   quisiéramos  montar   en   el   arranque  nuestra   partición  Windows   con   sistema  de   archivos  NTFS  bastaría  con  añadir  al  fichero  /etc/fstab  la  siguiente  línea:    /dev/hda1  /windows     ntfs-­‐3g   defaults     0     0    Teniendo  en  cuenta  que  el  punto  de  montaje  elegido  es  /windows  y  que  debe  existir  previamente.  

2.3. Conocer el espacio usado por un sistema de archivos.  Para  conocer  información  acerca  de  un  sistema  de  archivos  que  se  halla  montado  podemos  utilizar  la  orden  df  (disk  free)  que  posee  el  siguiente  formato:  

 

df  [-­‐i]  [sistema-­‐de-­‐archivos]    

Page 9: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  9    

Si  no  especificamos  sistema-­‐de-­‐archivos  se  nos  mostrarán  todos  los  que  estén  montados  en  ese  momento.   La   información   que   nos   proporciona   esta   orden   es   relativa   al   nombre   del   sistema,  número  total  de  Kb  de  espacio  que  ocupa  el  sistema  de  archivos,  número  de    Kb  ocupados,  espacio  disponible,  porcentaje  de  disco  utilizado  por  los  archivos  y  lugar  donde  está  montado  el  sistema.    Ejemplo:    [gandalf@lotr:˜]  #  df  S.Ficheros   Bloques  de  1K            Usado   Dispon         Uso%    Montado  en  /dev/hda2   1616495   1414790   118167   92%   /  /dev/sda1    208592    170888    37774   82%   /dos  /dev/fd0        1390          649        669   48%   /mnt/floppy    El  modificador  –i  sustituye  los  datos  en  Kb  por  datos  referidos  a  la  tabla  de  i-­‐nodos:  número  de  i-­‐nodos  en  uso,  libres  y  tanto  por  ciento  de  i-­‐nodos  utilizados.    Para  conocer  el  espacio  que  ocupa  un  directorio  en  concreto  y  todos  los  archivos  y  subdirectorios  que  cuelgan  de  él  podemos  utilizar  el  comando  du  (disk  usage).      

   Normalmente   la   salida   se   especifica   en   bloques   de   512   bytes   (de   un   1Kb   en   las   distribuciones  actuales).   Si   se   quiere   obtener   información   en   bloques   de   1K,   en   su   caso,   habría   que   utilizar   el  modificador   –k   (solo   versiones   antiguas   del   comando).   El   modificador   –s   especifica   que   nos  muestre   sólo   el   tamaño   en   bloques   del   directorio   (sin   desglosar   lo   que   ocupan   sus   archivos   y  subdirectorios).  Para  visualizar  información  sobre  el  espacio  que  ocupan  todos  los  ficheros  (no  solo  los  directorios)  usaremos  el  modificador  –a.    Ejemplo:    [gandalf@lotr:˜]  #  du  –sB1MB    

2.4. Desmontar sistemas de archivos.  Para  desmontar  los  sistemas  de  archivos  se  utiliza  la  orden  umount.  Existen  tres  formas  de  utilizar  este  comando.  La  sintaxis  básica  de  la  orden  es:    

   Para  desmontar  un   sistema  de   archivos   sólo   es  necesario   especificar   el   dispositivo  o   el   punto  de  montaje  del  sistema  de  archivos  que  se  desea  desmontar.  Eso  sí,  nos  deberemos  asegurar  de  que  ningún  archivo  del  sistema  de  archivos  a  desmontar  está  abierto  y  de  que  ningún  usuario  tenga  al  sistema  como  directorio  de  trabajo.      Ejemplo:    [gandalf@lotr:˜]  #  umount  /mnt/cdrom    Si  queremos  desmontar  todos  los  sistemas  de  archivos  utilizaremos  el  modificador  –a.      

du  [-­‐ska]  archivo  

umount    {  [{dispositivo|punto  de  montaje}]|[-­‐a]|[-­‐t    tipo]  }  

Page 10: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  10    

Ejemplo:    [gandalf@lotr:˜]  #  umount  –a    Si   queremos   desmontar   todos   los   sistemas   de   archivos   de   un   tipo   específico   utilizaremos   el  modificador  –t  seguido  del  tipo  en  cuestión.      Ejemplo:    [gandalf@lotr:˜]  #  umount  –t  iso9660    La   orden   umount   no   desmonta   los   sistemas   de   archivos   que   estén   en   uso.   Es   decir,   si   nos  encontramos   en   el   directorio   /mnt/cdrom   e   intentamos   una   orden     umount   /mnt/cdrom   se  producirá  un  error  que  indicará  que  el  sistema  está  aún  en  uso  (device  is  busy).    

2.5. Creación y formateo de un sistema de archivos.  Cuando  se  agrega  un  nuevo  disco  duro  a   la   computadora,   se  desea  cambiar   la   información  de   las  particiones  de  un  disco  duro  antiguo  o  se  va  a  utilizar  un  disquete  nuevo  debemos  crear  un  sistema  de   archivos   a   partir   de   una   unidad   sin   formato.   Para   crear   los   sistemas   de   archivos   se   utiliza   la  orden  mkfs  (make  filesystem)  que  es  un  programa  de  aplicación  que  llama  a  varios  programas  para  crear   el   sistema   de   archivos,   en   función   del   tipo   de   sistema   que   se   desee,   y   le   da   formato   al  dispositivo.      La  sintaxis  de  esta  orden  es:    

   -­‐V:     Hace  que  mkfs  produzca  una  salida  detalla  (verbose),  incluyendo  todas  las  órdenes  

específicas  del  sistema  de  archivos  que  se  ejecuten.  -­‐t  tipo:     Especifica  qué  tipo  de  sistema  se  va  a  construir.  Si  no  se  especifica  tipo,  mkfs  trata  

de  averiguarlo  buscándolo  en  /etc/fstab,  utilizando  la  entrada  correspondiente.  Si  no  puede  encontrarlo  crea  un  sistema  minix.  

opciones-­‐fs:  Opciones  específicas  del  sistema  de  archivos  que  se  pasarán  al  programa  de  construcción.  Las  opciones  comúnmente  admitidas  son:  

-­‐c:     Antes   de   construir   el   sistema   comprueba   el   dispositivo   para   ver   si   hay   bloques  defectuosos.  

-­‐l  nombre-­‐archivo:  Lee  desde  el  archivo  especificado  una  lista  de  los  bloques  incorrectos  en  el  disco.  

-­‐v:     Salida   detalla.   Algunos   programas   constructores   de   sistemas   de   archivos  específicos  no  aceptan  esta  opción.  

sistema-­‐de-­‐archivos:  Especifica  el  dispositivo  en  el  que  se  ubica  el  sistema  de  archivos.  bloques:  Especifica  el  número  de  bloques  que  utilizará  el  sistema  de  archivos.  

   Existe  una  orden  específica  para  crear  sistemas  de  archivos  Linux.  Esta  orden  es  mke2fs  y  tiene  el  siguiente  formato  sintáctico  (sólo  se  muestran  los  principales  modificadores):    

   

mkfs  [-­‐V][-­‐t  tipo][opciones-­‐fs]  sistema-­‐de-­‐archivos  [bloques]  

mke2fs  [-­‐c][-­‐j][-­‐L][-­‐F][-­‐t    tipo]      sistema-­‐de-­‐archivos  

Page 11: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  11    

Donde:    

-­‐c              Chequea   el   dispositivo   en  busca  de  bloques  defectuosos   antes  de   crear   el   sistema  de  archivos.  Si  se  especifica  dos  veces  se  usará  un  test  lento  de  lectura-­‐escritura  en  vez  de  uno  rápido  de  solo  lectura.  

-­‐j   Crea   el   sistema   de   archivos   ext3   con   soporte   para   journaling.   Si   no   se   especifica   el  sistema  creará  un  diario  con  los  valores  por  defecto.  

-­‐L     Especifica   la   etiqueta   de   volumen.   Disponemos   de   16   bytes   para   la   etiqueta.   Este  modificador  se  puede  usar  también  para  cambiar  la  etiqueta  a  un  volumen  ya  creado.  

-­‐F      Fuerza  al  comando  a  crear  el  sistema  de  archivos  incluso  si  el  volumen  especificado  no  es   una   partición   en   un   dispositivo   por   bloques,   o   si   alguno   de   los   parámetros   de  configuración  no  se  ajustan  a  la  realidad.  Si  queremos  forzar  la  creación  del  sistema  de  archivos   incluso   si   el   mismo   ya   está   montado   y   en   uso,   deberemos   especificar   el  modificador  dos  veces.  

 

3. Mantenimiento  de  los  sistemas  de  archivos.    El   administrador   del   sistema   es   el   responsable   de   mantener   la   integridad   de   los   sistemas   de  archivos.  Normalmente,  esto  supone  comprobar  los  sistemas  de  archivos  periódicamente,  para  ver  si   existen   archivos   dañados   o   deteriorados.   Linux   comprueba   automáticamente   los   sistemas   de  archivos  en  el  momento  del  arranque  si  éstos  tienen  especificado  un  valor  superior  a  0  en  el  campo  numérico  de  secuencia  del  archivo  /etc/fstab.    Pueden  ser  diversas   las  causas  que  provoquen  inconsistencias  en  el  sistema  de  archivos,  pero  sin  duda   la  más  corriente  viene  determinada  por  un  corte  en  el  suministro  eléctrico  (un  apagón,  una  desconexión  accidental,  etc.).  Cuando  esto  ocurre,  Linux  no  tiene  posibilidad  de  guardar  los  buffers  de  entrada-­‐salida,  ni  de  almacenar  en  el  disco  el  contenido  del  superbloque  que  se  encuentra  en  la  memoria.  Este  problema  se  resuelve  con  la  orden  fsck  (filesystem  check).      

   Donde:  

-­‐A:  Recorre  el  archivo  /etc/fstab  y  trata  de  comprobar  todos  los  sistemas  de  archivos  de  una  sola   pasada.   Esta   opción   se   utiliza   normalmente   durante   la   secuencia   de   arranque   de  Linux  para    comprobar  si  todos  los  sistemas  de  archivos  se  han  montado  correctamente.  Con  este  modificador  no  podemos  utilizar  el  argumento  sistema-­‐de  archivos.  

-­‐R:   Usado   conjuntamente   con   –A   hace   que   se   salte   el   chequeo   del   sistema   raíz   (en   caso   de  estar  montado  para  lectura/escritura).  

-­‐V:   (verbose).   Modo   detallado,   visualiza   información   adicional   sobre   las   acciones   que   va  realizando  fsck.  

-­‐t  tipo:  Especifica  el  tipo  del  sistema  de  archivos  que  debe  comprobarse.  -­‐a:   Arregla   automáticamente   cualquier   problema   detectado   en   el   sistema   de   archivos   sin  

pedir  confirmación.  Esta  opción  hay  que  utilizarla  con  precaución.  -­‐l:    Lista  los  nombres  de  los  archivos  en  el  sistema  de  archivos.  -­‐r:    Pide  confirmación  antes  de  reparar  daños.  -­‐s:  Lista  el  superbloque  antes  de  comprobar  el  sistema  de  archivos.  sistema-­‐de-­‐archivos:  puede  ser  el  dispositivo  o  el  punto  de  montaje.  

 Conviene   desmontar   un   sistema   de   archivos   antes   de   chequearlo.   De   este  modo   se   asegura   que  ninguno   de   los   archivos   esté   utilizándose   cuando   se   comprueba   la   integridad   del   sistema   de  

fsck  [-­‐A][-­‐V]  [-­‐t  tipo]  [-­‐a][-­‐l][-­‐r][-­‐s]  [sistema-­‐de-­‐archivos]  

Page 12: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  12    

archivos.   Si   fsck   realiza   algún   cambio   en   el   sistema   de   archivos   es   recomendable   reiniciar   el  sistema  (podemos  utilizar  shutdown  –r  now).    La   comprobación   del   sistema   de   archivos   raíz   plantea   un   problema   adicional.   No   se   puede  desmontar  directamente  el  sistema  de  archivos  principal,  ya  que  Linux  tiene  que  poder  acceder  a  él  para  poder  ejecutarse.  Para  realizar  esta  comprobación  hay  que  arrancar  el  sistema  con  un  disquete  de  mantenimiento  que  contenga  un  sistema  de  archivos  raíz  y  desde  allí  ejecutar  fsck.    Una  versión  más  avanzada  de  este  comando  para  sistemas  de  archivos  ext2  y  ext3  es  e2fsck  que  guarda  la  sintaxis  siguiente:    

   -­‐p:   (preen)   Automáticamente   repara   el   sistema   de   archivos.   Si   el   comando   descubre   un  

problema  que  requiere  la  intervención  del  administrador,  visualizará  una  descripción  del  problema   y   provocará   la   salida   del   comando   con   un   valor   de   4.   NO   se   utiliza  conjuntamente  con  –n  o  –y.  

-­‐c:   Provoca   el   uso   del   programa   badblocks   en   busca   de   bloques   defectuosos.   Si   se  encuentra  alguno  será  añadido    a  la  lista  de  bloques  defectuosos    para  evitar  su  uso.  Si  se  especifica   dos   veces   el   chequeo   se   realizará   con   un   proceso   no   destructivo   de  lectura/escritura.  

-­‐D   :    Optimiza  directorios  en  el  sistema  de  archivos  (para  más  información  mirar  página  de  manual).  

-­‐f:  Fuerza  el  chequeo  incluso  si  el  sistema  parece  estar  limpio.  -­‐n:    Abre  el  sistema  de  archivos  para  solo  lectura  (se  asume  una  respuesta  negativa  al  resto  

de  preguntas,  es  decir,  permite  el  uso  no  interactivo  del  comando).  -­‐y:  Asume  una  respuesta  afirmativa  a  todas  las  cuestiones  (permite  el  uso  no  interactivo  del  

comando).    -­‐v:  (verbose)  Modo  prolijo.    

Podemos   visualizar   la   información   de   configuración   de   un   sistema   de   archivos   con     el   comando  dumpe2fs  y  para  sacar  una  imagen  del  sistema  de  archivos  el  comando  e2image  (consultar  página  de  manual).    

4. Impresión  en  Linux.    Linux   requiere   algunos   pasos   más   para   la   configuración   de   las   impresoras   que   otros   sistemas  operativos  como  Windows  y  OS/2.  Para  poder  imprimir  correctamente  un  trabajo,  Linux  se  basa  en  una   serie   de   directorios   y   archivos   de   configuración.   Los   sistemas   comunes   de   impresión   para  UNIX/Linux  se  denominan  sistemas  lpr.  El  daemon  de  impresión,  lpd,  utiliza  estos  directorios  para  imprimir  sus  trabajos.    Cuando  se  da   la  orden  de   imprimir  un  archivo,  Linux  envía  éste  primero  a  una  zona  de  memoria  temporal  con  el  objetivo  de  que  la  diferencia  de  velocidad  existente  entre  la  impresora  y  la  CPU  no  ralentice   la   sesión  de   trabajo.  Este  proceso   se   conoce   con   el   nombre  de  gestión  de  colas   (SPOOL,  simultaneous   peripherical   operation   off-­‐line)   por   lo   que   las   impresoras   reciben   el   nombre   de  dispositivos  de  gestión  de  colas.  Por   tanto,  cuando   imprimimos  un  archivo  en  este  sistema,  no  va  directamente   a   la   impresora   sino   que   guarda   turno   para   ser   impreso.   Debido   a   que   Linux   ha  heredado  parte  de  la  funcionalidad  de  UNIX,  admite  muchos  tipos  de  impresora.      

e2fsck  [-­‐pcnyfvD]  sistema-­‐de-­‐archivos  

Page 13: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  13    

4.1. Funcionamiento de la impresión.  La   forma   más   sencilla   de   imprimir   bajo   UNIX/Linux   es   enviando   los   datos   de   impresión  directamente  al  dispositivo  de  impresión  redireccionando  la  salida  de  una  orden.  Por  ejemplo,  para  obtener   un   listado   del   directorio   activo   a   través   de   la   impresora   conectada   al   primer   puerto  paralelo  haríamos:    [gandalf@lotr:˜]  #  ls  >  /dev/lp0    Pero  de  esta  forma  no  nos  beneficiamos  de  las  características  multitarea  del  sistema  operativo  ya  que   esta   orden   tarda   en   ejecutarse   tanto   como   tarde   la   impresora   en   imprimir   el   directorio.   Un  método  más   rápido   consiste   en   enviar   los   datos   a   imprimir   a   la   cola   de   impresión,   que   es   como  normalmente  se  hace  cuando  se  trabaja  en  Linux.    Para  cada   impresora  se  define  un  área  de  gestión  de  colas  donde  se  recogen   los  datos  enviados  a  ella.  Un  proceso  explora  constantemente  las  áreas  de  gestión  de  colas  en  busca  de  nuevos  archivos  a  imprimir.  Cuando  encuentra  uno  lo  envía  directamente  a  la  impresora  correspondiente.  La  cola  de  impresión  se  gestiona  según  el  sistema  FIFO  (el  primer  trabajo  en  llegar  a  la  cola  es  el  primero  en  imprimirse).  El  proceso  que  se  encarga  de  realizar  este  trabajo  se  denomina  demonio  o  daemon  de  impresión   y   la   información   que   necesita   para   llevarlo   a   cabo   está   almacenada   en   el   archivo  /etc/printcap  (printers  capabilities)  que  contiene  información  relativa  al  dispositivo  físico,  área  de  gestión  de  colas,  etc.    El   sistema   de   impresión   de   UNIX   consta   de   algunos   programas   que   deben   encontrarse   en   las  ubicaciones   que   se   muestran   en   la   siguiente   tabla,   tener   al   superusuario   como   propietario,  pertenecer  al  grupo  daemon  y  tener  los  permisos  que  se  muestran  en  la  misma  tabla.    

Permisos       Ubicaciones  de  archivo  -­‐rwsr-­‐sr-­‐x     /usr/bin/lpr  -­‐rwsr-­‐sr-­‐x     /usr/bin/lpq  -­‐rwsr-­‐sr-­‐x     /usr/bin/lprm  -­‐rwxr-­‐s-­‐-­‐-­‐     /usr/sbin/lpd  

 Los   tres   primeros   archivos   se   utilizan   para   enviar,   inspeccionar   y   cancelar   los   trabajos   de  impresión  respectivamente.  El  proceso  daemon  de  impresión  es  lpd.  

4.2. El proceso daemon lpd .  El  demonio  lpd  es  el  encargado  de  manejar  todos  los  trabajos  de  impresión.  Si  el  proceso  lpd  no  se  está  ejecutando  Linux  no  puede  imprimir  ningún  trabajo  y  los  archivos  de  impresión  permanecen  en  los  directorios  de  gestión  de  colas  hasta  que  éste  se  inicie,  ya  que  se  encarga  del  manejo  de  las  colas  de  impresión.      En   el   caso   de   que  lpd   no   haya   sido   lanzado   al   inicializarse   el   sistema,   tendremos   que   utilizar   la  orden  siguiente  para  lanzarlo  nosotros:    

   Donde:    -­‐l:    Genera  un  archivo  de  registro  con  cada  petición  de  impresión.    

lpd  [-­‐l]  

Page 14: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  14    

El   modo   de   funcionamiento   de   lpd   viene   determinado   por   un   archivo   de   configuración:   el  /etc/printcap.    El   demonio   lpd   arrastra   consigo   problemas   de   seguridad   y   por   eso   ha   sido   sustituido   en   las  distribuciones     actuales   por   otras   utilidades   como   cups   (la   más   difundida)   LPRng   o   pdq.   Éste  último  aunque  mejora  la  seguridad  respecto  a  lpd,  no  la  resuelve  completamente,  razón  por  la  cual  es  el  menos  utilizado.    

4.2.1. El archivo /etc/printcap.  Se  trata  de  un  fichero  de  texto  al  cual  se  puede  acceder  si  se  es  usuario  root  y  si  tiene  los  permisos  –rw-­‐r—r-­‐-­‐.  Cada  entrada  en  el  archivo  describe  una  impresora.  Básicamente  una  entrada  printcap  proporciona  un  nombre  lógico  para  un  dispositivo  físico  y  luego  describe  el  manejo  de  los  datos  que  se  envían  a  este  dispositivo.  Proporciona  también  el  directorio  de  gestión  de  colas  en  el  que  deben  almacenarse   los   datos   enviados   a   ese   dispositivo   y   el   lugar   donde   deben   registrarse   los   errores  producidos   en   ese   dispositivo.   Se   puede   limitar   la   cantidad   de   datos   que   se   envían   en   un   solo  trabajo  o  limitar  el  acceso  a  la  impresora  a  determinados  usuarios.      Es  posible  tener  varias  entradas  printcap  que  definan  el  manejo  de  los  datos  destinados  a  la  misma  impresora  física.  Por  ejemplo,  una  misma  impresora  puede  soportar  al  mismo  tiempo  formatos  de  datos   PostScript   y   HP   Laserjet   dependiendo   de   la   secuencia   establecida   que   se   le   mande   a   la  impresora  antes  de  cada  trabajo.    Todos   los   campos   del   archivo   printcap,   salvo   el   que   contiene   los   nombres   de   impresora,   están  enmarcados  por  el  signo  de  dos  puntos  (:)  e  identificados  por  un  código  de  dos  letras.  Este  código  va  seguido  de  un  valor  que  depende  del   tipo  de  campo:   cadena,  booleano  y  numérico.  Cada   línea  termina   con   el   carácter   de   continuación   “\”   salvo   la   última   (se   supone   que   cada   entrada   –fila-­‐  corresponde   a   una   impresora,   por   eso   se   utiliza   el   carácter   de   continuación).   Los   campos   más  importantes  son:    

Campo   Tipo   Descripción  

lp     cadena   Especifica   el   dispositivo   de   impresión,   por   ejemplo  /dev/lp0.  

sd   cadena     Especifica  el  nombre  del  directorio  de  gestión  de  colas  (spool  directory)  para  esa  impresora.  

lf   cadena  Especifica   el   archivo   donde   se   registran   los   errores   de   esa  impresora.  El  archivo  debe  existir  previamente.  Por  ejemplo:  /usr/spool/lpd/epsonC42Errors.  

if   cadena   Especifica  el  nombre  del   filtro  de  entrada  (el  programa  que  convierte  los  datos  a  PostScript  o  HP,  por  ejemplo).  

rm   cadena   Especifica  el  nombre  de  un  sistema  de  impresión  remoto.  En  este  caso  el  campo  lp  debe  quedar  vacío.  

rp   cadena   Especifica  el  nombre  de  una  impresora  remota.  En  este  caso  el  campo  lp  debe  quedar  vacío.  

sh   boolean   Especifica  que   las   cabeceras  pueden  eliminarse   (páginas  de  carátula).  

sf   boolean   Especifica   el   carácter   que   indica   final   de   trabajo,   el   cual  puede  suprimirse.  

mx   numérico  

Especifica   el   tamaño  máximo  para   un   trabajo   de   impresión  (en  bloques).  

Page 15: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  15    

4.2.2. Consideraciones sobre la impresión.  Si   se  especifica  /dev/null   como  dispositivo  de   impresión   local  en  el  campo  lp   los  datos   finales  se  envían   en   vez   de   a   una   impresora   a   la   cubeta   de   bits,   es   decir,   a   ninguna   parte.   Esta   acción   sólo  resulta   útil   para   configuraciones   de   prueba.   Cuando   se   configura   una   impresora   remota   (aquella  que  está  conectada  a  la  red),  es  decir,  se  le  da  valor  a  los  campos  rp  y  rm,  hay  que  escribir  lp=:.  En  otro  caso,  este  campo  no  puede  estar  vacío.      El  archivo  que  se  especifique  en  el  campo  lf  debe  existir  previamente,  porque  de  otro  modo  no  se  guardará  registro  de  los  errores.    Los   filtros   de   entrada   son   programas   que   aceptan   datos   de   impresión   en   su   entrada   estándar  (normalmente  ASCII)  y  generan  datos  de  salida  en  su  salida  estándar  (generalmente  en  PostScript).  El  proceso  daemon  de  impresión  ejecuta  el  filtro  de  entrada  con  los  datos  de  gestión  de  colas  como  entrada  estándar  y  el  dispositivo  de  impresión  como  salida  estándar.    Salvo  que  varias  personas  utilicen  una  misma  impresora  no  tiene  mucho  sentido  imprimir  carátulas  separadoras   de   trabajos,   para   lo   cual   se     debe   especificar   el   campo   sh.   Cuando   se   imprimen  normalmente  trabajos  procedentes  de  procesadores  de  texto  es  conveniente  anular  la  inserción  del  carácter  de  fin  de  página  con  sf  para  evitar  que  después  de  la  impresión  de  una  página  obtengamos  otra   vacía.   No   obstante,   si   se   imprimen   programas   o   directorios,   el   salto   de   página   hace   que   la  última  página  se  expulse  y  que  cada  listado  comience  al  principio  de  otra.    El   campo  mx   permite   limitar   el   tamaño   en   bloques   de   los   datos   de   impresión.   El   número   que   se  especifica  está  en  bloques  BUFSIZE  (1  K  en  Linux).  Si  se  especifica  valor  0  se  elimina  el  límite  y  los  trabajos   de   impresión   quedan   sólo   limitados   por   el   espacio   disponible   en   disco.   Si   un   usuario  supera  el  límite  especificado  el  fichero  se  trunca  y  se  emite  un  mensaje  del  tipo:                              lpr:  nombre-­‐fichero:  copy  file  is  too  large.    El  ejemplo  siguiente  muestra  la  definición  de  una  impresora  en  un  archivo  printcap:       ##PRINTTOOL  3##  LOCAL  djet500  300x300  a4  {}  Deskjet  500  Mono  Prede.1     lp:\     :sd=/var/spool/lpd/lp:\     :mx#0:\     :sh:\     :lp=/dev/lp0:\     :if=/var/spool/lpd/lp/filter:  

4.3. La orden lpr.  Esta  orden  envía  un  trabajo  a  la  impresora  o  pone  en  cola  un  trabajo  de  impresión.  En  este  caso  el  archivo   especificado   se   copia   al   directorio   de   gestión   de   colas.   Si   no   se   especifica   archivo   el  comando  lee  de  la  entrada  estándar.  El  tamaño  de  éste  venía  especificado  en  el  archivo  minfree  que  se   halla   en   cada   directorio   y   que   además   especifica   el   número   de   bloques   de   disco   que   deben  reservarse  para  gestionar  los  archivos  de  cola  y  enviarlos  a  la  impresora.  De  esta  forma  se  evita  que  el  daemon  lpd  utilice  todo  el  disco  duro  para  gestionar  la  cola  de  impresión.  Su  sintaxis  es:    

   

lpr  [-­‐P  impresora]  [-­‐h]  [-­‐#nº]  [archivos]  

Page 16: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  16    

Donde:    -­‐P  impresora:  Especifica  la  impresora  a  la  que  queremos  enviar  la  salida.  -­‐h:  Elimina  la  primera  hoja  de  cabecera.  -­‐#nº:  Saca  n  copias  del  documento.    Si  no  se  especifica  un  nombre  de   fichero,   lpr  asume  que   la  entrada  será  efectuada  por   la  entrada  estándar   (normalmente   el   teclado   o   la   salida   de   otro   programa).   Esto   permite   que   el   usuario  redirija  la  salida  de  un  programa  al  dispositivo  de  impresión.      Ejemplo:  

[gandalf@lotr:˜]  $  cat  tesis.txt  |  lpr  

4.4. La orden lpq . Muestra  el  contenido  del  directorio  de  gestión  de  colas  para  una  impresora  determinada.  Una  parte  importante   de   la   información  mostrada   por  lpq   es   el   identificador   del   trabajo   necesario   para   el  caso  en  que  decidamos  cancelar  su  impresión.      

 El  comando  también  muestra  la  jerarquía  de  cada  trabajo  en  la  cola,  es  decir,  su  lugar  en  la  misma.  Si   el   archivo   está   imprimiéndose   en   ese  momento   o  lpd   está   tratando   de   imprimirlo,   junto   a   su  nombre  aparecerá  la  palabra  active.  Ejemplo:  

[gandalf@lotr:˜]  $  lpq      lp  is  ready  and  printing      Rank      Owner            Job    Files                    Total  Size      active  mwf                31      tesis.txt            682048  bytes  

4.5. La orden lprm .  Elimina  un  trabajo  de  la  cola.  El  usuario  puede  especificar  el  identificador  del  trabajo  o  el  número  de   trabajo   suministrados   por   la   orden   lprm.   Si   se   introduce   lprm   –   como   usuario   root,   se  cancelarán  todos  los  trabajos  de  la  cola  de  impresión.  Para  cancelar  todos  los  trabajos  de  un  usuario  basta  con  introducir  lprm  y  el  nombre  del  usuario.    

   Con  el  modificador  –P  eliminamos  todos  los  trabajos  enviados  a  la  impresora  especificada.    Ejemplo:      [gandalf@lotr:˜]  $  lprm  –    El   comando   anterior   cancela   todos   los   trabajos   de   impresión  que   son  propiedad  del   usuario   que  envió  el  comando.  Se  puede  cancelar  un  trabajo  de  forma  individual  obteniendo  primero  el  número  del  trabajo  usando  lpq,  dando  entonces  el  número  a  lprm.        

lpq  [-­‐P  impresora]  

lprm  [-­‐P  impresora]  [-­‐]  [Trabajo]  [usuario]  

Page 17: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  17    

Ejemplo:    [gandalf@lotr:˜]  $  lprm  31    …cancelaría  el  trabajo  31  (tesis.txt)  en  la  impresora  por  defecto.  

4.6. La orden lpc.  Permite  comprobar  el  estado  de   las   impresoras  y  controlar  algunos  aspectos  de  su  utilización.  En  concreto,   permite   iniciar   y   detener   el   volcado   de   trabajos   a   la   impresora,   activar   o   desactivar  impresoras   y   reorganizar   el   orden   de   los   trabajos   en   la   cola   de   impresión.   Si   se   teclea   lpc   sin  argumentos,  la  orden  nos  pedirá  que  indiquemos  las  acciones  que  se  desean  ejecutar.  De  este  modo  interactivo  podemos  salir  pulsando  exit.  El  formato  es:    

  Lista  de  órdenes  de  lpc:    

Orden  lpc           Parámetro           Descripción  

stop   {<Impresora>|all}   Detiene   la   impresora,   pero   las   peticiones   de  impresión  siguen  entrando  en  la  cola  

start     {<Impresora>|all}   Permite   que   la   impresora   inicie   la   impresión   de  archivos  que  se  encuentran  en  la  cola    

down   {<Impresora>|all}   Desactiva   la   impresión   en   la   impresora  especificada  

enable   {<Impresora>|all}   Habilita   la   gestión   de   colas   en   la   impresora  especificada  

topq   Nº  trabajo   Mueve   el   trabajo   especificado   al   principio   de   la  cola  

exit,  quit   (ninguno)   Permiten  salir  del  modo  interactivo  de  lpc  

status   {<Impresora>|all}  Muestra  el  estado  actual  de  la  impresora  así  como  el  número  de  trabajos  que  se  hallan  a  la  espera  de  ser  imprimidos.  

 Ejemplos:    [gandalf@lotr:˜]  #  lpc  down  miimpresora  [gandalf@lotr:˜]  #  lpc  enable  tuimpresora  [gandalf@lotr:˜]  #  lpc  topq  37  

4.7. CUPS.  El  sistema  de  impresión  CUPS  (Common  UNIX  Printing  System)  reemplaza  al  sistema  de  impresión  lpr/lpd.   Es   un   sistema   de   impresión   modular   para   Sistemas   Operativos   basados   en   Unix   que  convierte   al   ordenador   en   un   servidor   de   impresión.   Empezó   a   desarrollarse   en   1997   por   Easy  Software  Products  y  originalmente  usó  el  protocolo  LPD  pero  debido  a  sus  limitaciones  y  agujeros  de  seguridad,  así  como  a  incompatibilidades  entre  marcas,  se  optó  por  cambiarlo  por  IPP  (Internet  Printing  Protocol).  Gracias   a   ello  pronto   sería   adoptado  por  diversas  distribuciones  Linux  y   en   el  2002   Apple     adoptó   CUPS   para   su   Mac   OS   X.   En   2007   Apple   compró   CUPS   y   empleó   a   su  desarrollador,  el  ingeniero  Michael  Sweet.    

lpc  [orden]  [parámetro]  

Page 18: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  18    

Utiliza  una  interfaz  web  (frontend)    para  la  configuración  del  sistema  de  impresión,  añadir  nuevas  impresoras,   chequear   la   cola   de   trabajos,   etc.   A   esta   interfaz   se   accede   por   el   puerto   631.  (http://localhost:631).    Consta  de:  

 a. el   demonio   de   impresión   cupsd   (print   spooler   daemon):   vigila   los   directorios   spool  

buscando  trabajos  a  imprimir.  Cuando  aparece  alguno,  cupsd  lanza  una  copia  de  sí  mismo  que  imprimirá  el  archivo  en  la  impresora  apropiada.  Constituye  el    backend  del  sistema.    

b. la   cola   de   impresión   (spool):   ubicada   en   el   directorio   /var/spool/cups,   donde   se  almacenan  los  trabajos  a  imprimir.  Los  nuevos  trabajos  a  imprimir  se  colocan  en  la  cola  de  impresión  a  la  espera  de  ser  atendidos.  La  gestión  de  la  cola    se  rige  por  el  sistema  FIFO:  el  primero  que  entra  es  el  primero  que  sale.    

 c. los  comandos  lpr/lpd  para  manejar  la  cola  de  impresión:  el  sistema  lpr/lpd  es  uno  de  

los   estándares   de   UNIX,   y   las   aplicaciones   asumen   que   tendrán   los   comandos   de   este  sistema  de  impresión  disponibles.  Por  este  motivo  CUPS  proporciona  su  propia  versión  de  esos  comandos,  que  son:    

o lpr  (o  lp):  enviar  trabajos  a  la  cola  de  impresión.  Este  comando  copia  el  archivo  a  imprimir  en  el  directorio  de  spool,  donde  permanece  hasta  que  el  demonio  cupsd  lo  imprime.  Su  sintaxis  es:    

lpr  <archivo>  

o lpq:  consultar  los  trabajos  pendientes  en  la  cola  de  impresión.  o lpc:  configurar  las  impresoras.  o lprm:  eliminar  trabajos  de  la  cola  de  impresión.  

d.  los  drivers  PPD  de  las  impresoras  PostScript5:  en  Linux,  cuando  una  aplicación  envía  un  documento  a  la  impresora  genera  un  archivo  PostScript.    

Si   la   impresora   entiende   el   lenguaje   PostScript   puede   imprimir   el   documento  directamente.   Sólo   tenemos   que   decirle   a   CUPS   cuáles   son   las   características   de   la  impresora,  y  eso  lo  hace  el  archivo  PPD  (Postscript  Printer  Description):  contiene  todas  las  características  de  la  impresora,  como  tamaños  de  papel,  colores,  resoluciones  disponibles,  etc.  Si  la  impresora  no  entiende  PostScript  debemos  traducir  los  documentos  que  generan  las  aplicaciones  (PostScript)  a  un  lenguaje  que  entienda  la  impresora,  por  lo  que  necesitamos  un   filtro.   De   esto   se   encarga   Foomatic6   (paquete   foomatic-­‐db-­‐engine):   proporciona   el  archivo   PPD   y   los   filtros   necesarios   para   traducir   los   documentos   (trabaja   sobre  GhostScript7).  En  ambos  casos,  el  archivo  PPD  de   la   impresora  se  puede  descargar  desde  LinuxPrinting  (linuxprinting.org)  o  desde   la  web  de  CUPS   (cups.org)   y   se  debe  guardar  en  el  directorio  /usr/share/cups/model.  

e.    los  comandos  CUPS  para  administrar  las  impresoras:  lpinfo,  lpadmin,  enable,  disable,  accept,  reject,  lpoptions  y  lpstat.  

                                                                                                                           5  PostScript  es  un   lenguaje  de  descripción  de  páginas  (en   inglés  PDL,  page  description   language),  utilizado  en  muchas  impresoras  y,  de  manera  usual,  como  formato  de  transporte  de  archivos  gráficos  en  talleres  de  impresión  profesional.  6  Es  un  sistema  de   impresión  diseñado  para   facilitar   la   configuración  de   impresoras.  Proporciona  una   interfaz  entre  el  gestor  de  impresión  CUPS  o  lpr  y  la  impresora  real.  7  Permite  presentar  formatos  pdf  y  ps  (PostScript)  en  la  pantalla  y  traducirlos  para  que  puedan  ser  impresos.  

Page 19: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  19    

f.    la  interfaz  web  de  CUPS:  es  la  mejor  opción  para  administrar  CUPS.  

4.7.1. Instalar una impresora local con CUPS:  Veamos  cómo  instalar  una  impresora  local  con  CUPS  utilizando  su  interfaz  web:  

• conectamos  la  impresora.  • conseguimos  e  instalamos  el  archivo  PPD  de  nuestra  impresora.  • instalamos  Foomatic  si  la  impresora  no  es  PostScript.  • reiniciamos  el  demonio  de  CUPS:    

[gandalf@lotr:˜]  #  /etc/init.d/cupsys  restart  

• accedemos  al  interfaz  web  de  CUPS:  http://localhost:631  y  entramos  en  Administración  o  directamente  seleccionamos  Añadiendo  Impresoras  y  Clases  (Adding  Printers  and  Classes)  .  

 

 

 

Page 20: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  20    

• pulsamos  Añadir  impresora  (Add  Printer).    

 

 

• en   la   siguiente   pantalla   se   nos   preguntará   el  Tipo   de   conexión.   Si   Linux   ha   detectado   una  impresora  local  la  listará  y  podremos  seleccionarla,  si  no,  deberemos  configurar  la  conexión  manualmente  (en  este  ejemplo  vamos  a  instalar  una  impresora  HP  F4100):    

 

 

Page 21: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  21    

• Indicamos  un  nombre  para  la  impresora,  una  descripción  y  su  localización  física:  

• nos  pedirá  Usuario  y  Contraseña,  ya  que  para  administrar  impresoras  hay  que  tener  permisos  de  root  (la  contraseña  se  envía  en  texto  plano,  sin  encriptar).    

 

• Si   la   impresora   es   local   y   la   ha   detectado   el   sistema,   pulsamos   en   la   siguiente   pantalla  Añadir   Impresora   (el   sistema   habrá   conseguido   la   información   necesaria   y   habremos  finalizado   la   instalación.   En   el   caso   de   una   impresora   en   red   aún   deberemos   especificar  marca  y  modelo  manualmente.  

Page 22: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  22    

• Al   pulsar   Añadir   Impresora   (Add   Printer)   nos   aparece   una   pantalla   donde   deberemos  establecer   los   parámetros   por   defecto   de   la   misma.   Una   vez   realizado   este   paso   se   nos  informa  de  las  especificaciones  de  la  impresora.    

 

• Pulsando   en   la   opción   Impresoras     del  menú   iremos   a   la   página   de   la   nueva   impresora.  Desde   aquí   podemos   monitorizar   los   trabajos   de   impresión   (botón   Mantenimiento   -­‐Maintenance),   cambiar   las   opciones   de   configuración,     seleccionarla   como   impresora  predeterminada,  etc.    (botón  Administración-­‐Administration).  

Page 23: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  23    

     

4.7.2. Compartir nuestra impresora:  Tenemos  dos  posibilidades  para  compartir  nuestra  impresora:  

1. que  CUPS  escuche  conexiones  de  máquinas  remotas    

Los   equipos   que   dispongan   de   un   cliente   IPP   (Linux,   Unix,   Mac   y   Windows   XP)   podrán  conectar  con  el  demonio  de  impresión  cupsd  de  nuestra  máquina  mediante  el  protocolo  IPP  (Internet  Printing  Protocol,  puerto  631  TCP),   e   imprimir  en  nuestra   impresora,  una  vez  que  les   permitamos   acceder.   Para   ello,   en   el   archivo   de   configuración   de   CUPS,  /etc/cups/cupsd.conf   especificaremos   qué   máquinas   tienen   acceso   a   CUPS.   Buscaremos   las  líneas:  

<Location  />          Order  Deny,Allow          Deny  All          Allow  127.0.0.1  </Location>  

 

Vemos  que  por  defecto   sólo  puede  acceder  a  CUPS   la  propia  máquina   (127.0.0.1).  Para  que  puedan  acceder  las  máquinas  de  la  LAN  añadiremos  la  línea:  

 Allow  192.168.0.0/255.255.255.0    

Para  terminar  reiniciamos  el  demonio  de  CUPS:    

#  /etc/init.d/cupsys  restart    Una  vez  compartida  la  impresora,  es  muy  sencillo  imprimir  desde  Linux  como  hemos  visto:  

o Interfaz  web  de  CUPS  http://localhost:631  o Administración,  Añadir  impresora  

Page 24: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  24    

o Introducimos  Nombre  de  la  impresora,  Ubicación  y  Descripción  o Tipo  de  conexión,  Internet  Printing  Protocol  (IPP).  o URL  de  la  conexión  (Ej.-­‐  ipp://192.168.0.2/printers/Canon).  o Modelo,  Usuario  y  Contraseña  y  la  impresora  ya  está  instalada.    

También  es  muy  sencillo  imprimir  desde  Windows  XP:  

o Asistente  para  agregar  impresoras  o Impresora  de  red  o  una  impresora  conectada  a  otra  computadora  o Conectarse  a  una  impresora  en  Internet  o  en  su  red  doméstica  u  organización  o URL  de  la  conexión,  (Ej.-­‐  http://192.168.0.2:631/printers/Canon).  o Instalamos  los  drivers  de  la  impresora  desde  el  CD  del  fabricante  y  listo.  

 

2. que  el  servidor  Samba  atienda  peticiones  remotas  y  las  pase  a  CUPS    

Los  equipos  que  dispongan  de  un   cliente  SMB   (Windows)  podrán  conectar   con  el  servidor  Samba  (paquete  samba)  de  nuestra  máquina  mediante  el  protocolo  SMB  (puerto  139  TCP),  y  éste  se  encargará  de  pasarle  la  petición  a  CUPS.  

Vamos  a  configurar  el  servidor  Samba  para  compartir  nuestra  impresora.  Primero  crearemos  en   nuestro   sistema   un   usuario   específico   (smbprint)   para   que   acceda   a   la   impresora  mediante  Samba.  Si  queremos  permitir  acceso  anónimo  lo  podemos  crear  sin  contraseña:    

     [gandalf@lotr:˜]  #  /usr/sbin/adduser  -­‐-­‐system  -­‐-­‐disabled-­‐password  smbprint    

Para   compartir  nuestra   impresora  CUPS  y  que   sólo   el   usuario   smbprint   tenga   acceso   a   ella,  como   invitado   (por   lo   que   todas   las  máquinas  de   la   red   local   y   con   conexión  directa  desde  Internet  podrán  imprimir),  editaremos  el  archivo  /etc/samba/smb.conf  poniendo:    

[printers] browseable = yes printable = yes public = yes guest only = yes guest account = smbprint path = /home/smbprint

Además  tenemos  que  decirle  a  Samba  que  el  sistema  de  impresión  es  CUPS,  no  lpr/lpd,  por  lo  que  cambiaremos  /etc/samba/smb.conf  para  que  quede:    

[global] printcap name = cups printing = cups

Grabamos  los  cambios  y  reiniciamos  Samba:    

         [gandalf@lotr:˜]  #  /etc/init.d/samba  restart    

Page 25: Linux-Gestión de dispositivos2012

Mode Martínez Palenzuela – 2012 I.E.S. Zaidín - Vergeles

Linux: Gestión de Dispositivos  |  25    

Una  vez  compartida  la  impresora,  es  muy  sencillo  imprimir  desde  Windows:  

o localizamos  nuestra  máquina  en  el  Explorador  de  archivos.  Veremos  que  tiene  una  impresora  compartida.  

o pulsamos  Conectar...  e  instalamos  los  drivers  desde  el  CD  del  fabricante.  

4.7.3. Imprimir desde Linux en una impresora Windows:  Para   conectar  desde  Linux   con  un   equipo   remoto  Windows  que   tiene  una   impresora   compartida  usaremos  el  cliente  Samba  (paquete  smbclient),  mediante  el  protocolo  SMB,  puerto  139  TCP.  CUPS  utiliza  como  back-­‐end  el  programa  smbspool  de  Samba.  

 Primero  nos  aseguraremos  de  que  podemos  acceder  a  la  máquina  Windows:    [gandalf@lotr:˜]   #  smbclient  -­‐L  192.168.0.2  -­‐U  usuario    Una  vez  comprobado  que  la  impresora  remota  es  accesible,  es  muy  sencillo  imprimir:  

• Interfaz  web  de  CUPS  http://localhost:631  • Administración,  Añadir  impresora  • Introducimos  Nombre  de  la  impresora,  Ubicación  y  Descripción  • Tipo  de  conexión,  Windows  Printer  via  Samba.  • URL  de  la  conexión,  (Ej.-­‐  smb://usuario:[email protected]/Canon).  Si  el  usuario  con  

permiso  para  imprimir  en  el  servidor  Samba  se  llama  igual  que  el  usuario  que  lanza  la  impresión,  no  es  necesario  especificarlo.  

• Modelo,  Usuario  y  Contraseña  y  ya  está.