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