Os artigos mais lidos

Quarta, Janeiro 30, 2013 Helio Loureiro Blog 18908
XGH é uma das coisas mais genias que surgiu nos últimos tempos, descrevendo a estupidez que se aplica em métodos ágeis, mas que reflete bem o ambiente corporativo. Infelizmente o site foi abandonado...
Sábado, Maio 03, 2008 Helio Loureiro FreeBSD 16012
This article is kindly linked by: http://tuxmobil.org/hp_compaq.html http://tuxmobil.org/mobile_bsd.html Barely finished my last article about FreeBSD (PRERELEASE at that time) on Compaq laptops,...
Quarta, Junho 11, 2014 Helio Loureiro Blog 15831
Nem só de discussões de licença, flamewares, releases de kernel e ativistas sapatênis vive o mundo do software livre. Às vezes é envolto de mistério também. Um dos enigmas recentes foi o sumiço da...
Sexta, Maio 20, 2005 Helio Loureiro Python 15531
Esse é o script usado para autenticar automaticamente no Speedy da Telefonica (região de São Paulo). Evita que usuários residenciais, como eu, precisem estar em frente à máquina, permitindo que a...

Uma das melhores aquisições em minhas viagens foi o HD externo de 160 GB da Iomega. Pequeno, leve e suportado pelo FreeBSD:

umass0: Iomega Iomega HDD USB2.0 Drive, rev 2.00/2.40, addr 2 
da0 at umass-sim0 bus 0 target 0 lun 0
da0: Fixed Direct Access SCSI-0 device
da0: 40.000MB/s transfers
da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)

Ao formatar, decidi criar uma instalação de Ubuntu sobre o mesmo, utilizando uma partição (da0s1) como raiz, outra (da0s2) maior como home, uma para troca com usuários de windows (da0s6) e uma última com o que sobrou (da0s7), que ficou como "/mnt/ots".

Utilizando o fdisk-linux, disponível no ports, é possível criar e depois visualizar as partições.

musashi# fdisk-linux -l /dev/da0 

Disk /dev/da0: 160.0 GB, 160041885696 bytes

255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/da0s1 1 608 4883728+ 83 Linux
/dev/da0s2 609 12766 97659135 83 Linux
/dev/da0s3 12767 19457 53745457+ 5 Extended
/dev/da0s5 12767 12888 979933+ 82 Linux swap
/dev/da0s6 18242 19457 9767488+ b Win95 FAT32
/dev/da0s7 12889 18241 42997941 83 Linux
Partition table entries are not in disk order

Sendo que o tipo Ext3 (Journalling) é suportado pelo FreeBSD, nada melhor que o utilizar para guardar os dados, fazendo todo sincronismo de UFS para Ext3 e tendo um sistema backup, em Linux, disponível no HD externo.

Para fazer o mount/umount, criei um pequeno script, que segue abaixo, já que o sistema de automount não reconheçe perfeitamente os devices e respectivos pontos de montagem, fora o fato do mesmo alterar a posição de da0 para da1 ou qualquer outro da, dependendo de qual outro dispositivo estiver conectado.

mount_iomega.sh

#! /bin/sh 
case $1 in
    -m) ;;

    -u) ;;
     *) echo "Use: $0 [-m|-u]"
        echo " -m: mount disks "
        echo " -u: umount disks "
        exit 1
        ;;
esac

echo "Finding Iomega"
### Finding device
umass=`dmesg | grep -i iomega | tail -1|awk -F":" '{print $1}'`
umass_id=`echo $umass | sed 's/umass//'`
device=`dmesg | grep "umass-sim$umass_id" | tail -1 |awk '{print $1}'`

if [ ! $umass_id ] ; then
    echo "Impossible to find Iomega device"
    exit 1
fi

case $1 in
    -m) echo "Checking partitions"
        for id in 1 2 7
            do
            fsck.ext3 -y /dev/${device}s${id}
        done
        for id in 6
            do
            fsck_msdosfs -y /dev/${device}s${id}
        done
        echo "Mounting partitions"
        mount | grep "/dev/${device}s1" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_ext2fs /dev/${device}s1 /mnt/ext2
        fi
        mount | grep "/dev/${device}s2" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_ext2fs /dev/${device}s2 /mnt/ext2/home
        fi
        mount | grep "/dev/${device}s7" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_ext2fs /dev/${device}s7 /mnt/ext2/mnt/ots
        fi
        mount | grep "/dev/${device}s6" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_msdosfs -u 1000 -g 100 -o longnames -m 777 /dev/${device}s6 /mnt/msdos
        fi
        ;;

    -u) for dir in msdos ext2/mnt/ots ext2/home ext2
            do
            echo "Umounting: /mnt/$dir"
            umount /mnt/$dir
        done
        ;;
esac