Cómo Formatear un disquete ou Floppy disk
Neste artigo explico cómo formatear un “Floppy disk”, “floppy”, “disquete”, “disquet”, “diskete”, “diskettes” ou cómo o chamaran na túa zona durante a era “pre-internet” de Galiza.
Os Floppy disk, son disquetes cunha capacidade de 1.44 MiB na súa versión “High Density” ( alta densidade ) que foi a máis común no seu tempo.
Por fortuna conservo un vello lector de Floppy Disks con conexión USB que reparei fai uns 7 ou 8 anos, a día de hoxe supoño que habrá algunha páxina china que os venda, quizáis un gasto inútil salvo que teñas disquetes antigos con información útil.
Darlle formato
Primeiro hai que saber onde está a unidade, no meu caso é un USB polo que no Fedora 22 mo amosa cómo “/dev/sdb”.
Este é o resultado de fdisk -l:
...
Disk /dev/sdb: 1,4 MiB, 1474560 bytes, 2880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8037458d
...
Eliminamos todo o contido do disquete con “dd” ( uns 20 ou 30 anos despóis, o proceso é moooito máis rápido pois tardou “só” uns 27 segundos xD , quizás é que a tecnoloxía do disquete non permita unha escritura máis rápida, o que daría por esta velocidade nos 90 xD ).
Con isto eliminámolas particións e calquer arquivo solto, mais sobre todo nos sirve se todavía se pode escribir no disquete.
Execución do comando e resultado:
# dd if=/dev/zero of=/dev/sdb count=1 bs=1474560 && sync
1+0 records in
1+0 records out
1474560 bytes (1,5 MB) copied, 26,7523 s, 55,1 kB/s
Unha vez nos cargamos todo posible rastro de particións, comprobando que toda a súa superficie é escribible.
Particionamos con fdisk:
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.26.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xd0ace10f.
Command (m for help):
Seleccionamos a opción “o” para crear unha nova taboa de particións MSDOS
Command (m for help): o
Created a new DOS disklabel with disk identifier 0xcfd94a15.
Agora a nova partición a facemos con “n” e seguímolos pasos, elexindo “p” (primary), “1” (xa que só queremos unha partición e por elo só pode ser a 1 ), en canto a sectores de inicio e fin, dámoslle a intro seguido, para que elixa o primer e último sector dispoñibles:
Command (m for help): o
Created a new DOS disklabel with disk identifier 0xcfd94a15.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1): 1
First sector (1-2879, default 1):
Last sector, +sectors or +size{K,M,G,T,P} (1-2879, default 2879):
Created a new partition 1 of type 'Linux' and of size 1,4 MiB.
O tipo da partición déixolla cómo Linux, xa que non penso usar este disquete en windows e ao noso “juanquer” se lle pon un pelín máis complicado acceder ao sistema de arquivos do disquete. ( Salvo que sepa buscar en google, que de nada sirve se non entedes o que lees ;) )
Por último podemos usar “p” para listar a taboa de particións actual, e “w” para gardalas mudanzas e sair:
Command (m for help): p
Disk /dev/sdb: 1,4 MiB, 1474560 bytes, 2880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcfd94a15
Device Boot Start End Sectors Size Id tipo
/dev/sdb1 1 2879 2879 1,4M 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Con isto xa temola taboa de particións e a partición.
Formatela partición
Dámoslle formato, neste caso EXT2 mellor, xa que EXT3 e superiores teñen journal e ocuparían un valioso espazo no disquete.
Opcións:
| Parámetro: | Explicación: |
|---|---|
| -v | Para amosala información do proceso de formateado. |
| -m0 | Designar a porcentaxe de bloques reservados para root, en 0%. |
| -L |
Darlle un nome a partición, coma “floppy” por exemplo. |
# mkfs.ext2 -v -m0 -L "<nome_pra_partición>" /dev/sdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 1436 1k blocks and 184 inodes
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
Para poder permitires a escritura no mesmo por parte doutros usuarios ( Algo típico no siglo XX ), podemos asignarlle permisos de lectura, escritura e execución a todo o mundo con chmod:
# chmod -v a+rwx <punto_de_Montaxe>
mode of "<directorio_raiz_do_floppy>" changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)
E voilá! , xa temolo disquete listo para usar.
Observacións
Cómo anécdota comentar que facendo probas de escribires un texto con Kate, o editor de textos de KDE, este se me quedaba algo “pillado” cada 30 segundos, por esa copia de seguridade que vai gardando sempre mentres editamos un ficheiro, un da grazas polos GB/s dos discos Sata actuáis xD
Tamén que 10 anos despóis sen escribires nen leer neles, seguen estando en perfectas condicións e os datos non se borraron, o único o formato dos arquivos é o privativo feito co word 2003 da época, mais bueno o libreoffice pode con todo xD.
Extra, Script cos pasos necesarios
Cómo teño unha caixa de disquetes e o proceso de formate é algo repetitivo vou automatizalo un pouco co seguinte script.
Que supón que sempre en /dev/sdb estará a floppy, por iso que É PERIGOSO E NON ME FAGO RESPONSABLE de que por exemplo formateedes o voso disco duro, externo, pendrive, etc…
Script formateador de disquetes en /dev/sdb:
#!/bin/bash
# Autor: Delio Docampo Cordeiro
# Version: 20150613
# Description: Formatted diskettes leaving a ext2 partition with 777 permissions.
sync
fdisk -l /dev/sdb
echo
read -p "¿Desexa FORMATEAR /dev/sdb? (Escriba si en maiúsculas): " ANSWER
function formatea_floppy {
SLUG=`date +"%Y%m%d%H%M%S"`
sync
dd if=/dev/zero of=/dev/sdb bs=1 count=1474560 # É opcional, serve para comprobrar a capacidade de escritura no disquete.
sync
echo -ne "o\nn\np\n1\n\n\nw\n" |fdisk /dev/sdb
sync
mkfs.ext2 -v -m0 -L "Floppy" /dev/sdb1
fdisk -l /dev/sdb
echo
mkdir /tmp/floppy_new$SLUG -v
mount -v /dev/sdb1 /tmp/floppy_new$SLUG
chmod -v a+rwx /tmp/floppy_new$SLUG
umount -v /tmp/floppy_new$SLUG
rm -vrf /tmp/floppy_new$SLUG
}
case "$ANSWER" in
"SI"|"YES") formatea_floppy;;
*) echo "Operación anulada, finalizada a execución do script."
esac