Imprimir
Categoria: FreeBSD
Acessos: 5828

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