Archivo de la etiqueta: file systems

svn error E000022 invalid UTF-8 sequence

Hace poco me paso que necesitaba actualizar un repo SVN con

$ sudo svn up

Con lo cual me encuentro que no es posible, por el siguiente error:

svn: E000022: Error converting entry in directory '/var/www/html/sigp-ag/upload/cp' to UTF-8
svn: E000022: Valid UTF-8 data
(hex: 31 34 38 37 38 38 35 35 35 35 2d 48 68 31 35 65 2d 43 75)
followed by invalid UTF-8 sequence
(hex: c3 2e 64 6f)

La unica forma de lograr update del repo era ir directorio por directorio de los que YO sabia que habia cambios haciendo svn up
Obviamente no es nada practico, el problema es que el SVN de que se trata el error ni siquiera de donde proviene…

Mi compañero de trabajo me decia, «si ! es molesto hacer así svn up por cada directorio que uno sabe que hay cambios, pero intenté arreglarlo y no pude»

Así que me dispuse a resolverlo, googleando mucho, veo que no hay mucha información, y nadie termina por resolver el problema, encontrando diferentes notas de personas que se encontraron el error, pude encontrar la forma de identificar el probleme y resolverlo !

Primero que nada, el problema viene de una codificación no estandar al sistema operativo (en mi caso está por default el encodign UTF 8), y la codificación no standard que encuentra el SVN obviamente se encuentra en alguno de los archivos del directorio que denuncia, en mi caso:

/var/www/html/sigp-ag/upload/cp

el problema no tiene nada que ver con el encoding del contenido del archivo, sino del nombre del archivo que tiene una codificación invalida para UTF 8

La forma de detectar cual es el archivo que tiene el problema es haciendo:

$ echo "\x31\x34\x38\x37\x38\x38\x35\x35\x35\x35\x2d\x48\x68\x31\x35\x65\x2d\x43\x75\xc3\x2e\x64\x6f" | xargs -0 printf

En mi caso lo unico que hice fue anteponer \x en cada numero empezando por la secuencia que es valida para SVN y a continuación por la invalida según SVN:

1487885555-Hh15e-Cu�.do

Ese es el archivo en mi caso que trae problemas: aqui hay 2 posibilidades, 1 borrar el archivo (la facil), 2 cambiar el encodig del nombre del archivo que está trayendo problemas…

Yo lo que hice fue, eliminar el archivo del versionado, directamente todo el directorio lo saque del versionado, y listo

Moviendo particiones /boot /root /home a otras particiones o discos

bootear desde un live cd o live USB

1- Montar las particiones desde donde vamos a leer info y a donde vamos a traspasar la información

cd /mnt
# root viejo
sudo mkdir oldroot
sudo mount -t ext4 /dev/sda6 oldroot
# root nuevo
sudo mkdir newroot
sudo mount -t ext4 /dev/sda8 newroot

2.- copiamos toda la info del root viejo al nuevo

sudo cp -ax oldroot/ newroot/

3.- montamos en el nuevo root los directorios que tengamos en otras particiones (yo tengo boot y home en otras particiones)

#boot
sudo mount -t ext4 /dev/sda5 newroot/boot
#home
sudo mount -t ext4 /dev/sda7 newroot/home

4.- hacemos un «bind» con los directorios ficticios de proc dev y sys

sudo mount -B /proc newroot/proc/
sudo mount -B /dev newroot/dev/
sudo mount -B /sys newroot/sys/

5.- eliminamos todo en la partición del viejo root para que el grub no lo detecte como un S.O al que queramos acceder

sudo rm -rf oldroot/*

6.- hacemos chroot al nuevo root

sudo chroot newroot
update-grub

Listo!

Recuperando discos y usb sticks

Introduccion:

No siempre podemos estar seguros que el estado de nuestro dispositivo de almacenamiento (con «dispositivo de almacenamiento» me refiero a todo disco duro (sea SATA, IDE o SSD), pendrive o cualquier otro hardware que nos permita guardar información), el estado de los disposititvo de almacenamiento no siempre podemos garantizar su estado perfecto para siempre, ocurre que con el tiempo los dispositivos comienzan a tener problemas.

Todo dispositivo de almacenamiento, cuenta con alguna organización de archivos, es decir, lógica (comunmente se conoce a esa organización lógica como file system), aquí hay muchas cosas que se podrían profundizar para entender que es lo que puede estar con «problemas», para no aburrilos voy a ser lo más minimalista posible:

Existen varios tipos de problemas que le pueden ocurrir a un dispositivo de almacenamiento: Seguir leyendo Recuperando discos y usb sticks

File systems linux on an Image

Los sistemas de archivos Linux, son como todos sabemos una alternativa libre y diferente a lo que nos plantea el sistema de archivos Windows. Lo cual cuando pasamos a adentrarnos en el file systema de linux acostumbrados a la organizaciòn de windows (me paso en su momento, esto fue hace ya 12 años) puede llegar a ser un quebradero de cabeza.

Por suerte hay gente que nos busca hacer la vida un poco mas simple, un ejemplo es la gente de blackmoreops que nos han mostrado en una sola imagen la jerarquia de archivos, donde se ubica cada uno y para que sirve!

La teoria de como se manejan los archivos en un filesystem de linux me resulta aburrida, pero no por ello se debe ignorar!, si quieren puedo agregar data de como funcionan internamente.

La idea (sin entrar en los detalles internos de la organizacion de un file systema linux) es que «todo es un archivo», por raro que parezca (a los que vienen de windows seguro que si!) esta idea abarca: archivos (propiamente dicho), directorios, filesystemas remotos, filesystems montados, pipes, dispositivos! (cdrom, pendrives), procesos!…. TODO es TODO

aqui va la imagen:
linux-file-system-hierarchy-linux-file-structure-optimized