Vamos criar um sistema de arquivos ISO9660 simples:
mkdir cd
echo 'hello world' > cd/foo
echo '42' > cd/bar
genisoimage -o cd.iso cd
Monte, examine e desmonte:
gnome-disk-image-mounter cd.iso
ls -li /media/user/CDROM
1474 -r-------- 1 user user 3 Jul 18 19:38 bar
1475 -r-------- 1 user user 12 Jul 18 19:38 foo
umount cd.iso
Agora abra a imagem em um editor hexadecimal e substitua FOO.;1
por BAR.;1
. Se for útil, os números de inode no meu sistema são realmente o deslocamento da entrada de diretório para a imagem ISO / 32, ou seja, veja em torno de python -c 'print hex(inode*32)'
.
ISO9660 , como FAT , não tem inodes, mas o Linux finge que sim. Todas as informações são armazenadas diretamente no diretório, e como cada entrada de comprimento variável tem no mínimo mais de 32 bytes, isso garante que todos os 'inodes' sejam únicos.
Agora remonte e olhe novamente:
gnome-disk-image-mounter cd.iso
ls -li /media/user/CDROM
1474 -r-------- 1 user user 3 Jul 18 19:38 bar
1474 -r-------- 1 user user 3 Jul 18 19:38 bar
umount cd.iso
Observe os números e tamanhos dos arquivos "inode". Ambos os arquivos ainda estão lá na imagem, mas o nome de arquivo duplicado confunde o Linux, fazendo com que ele liste o primeiro arquivo duas vezes. O segundo arquivo está completamente inacessível agora mesmo.