Com kernels recentes (≥ 2.6.37), veja A resposta de Petr Uzel . Com kernels mais antigos, esse limite de comprimento é inerente.
Strace mostra que losetup -a obtém o nome por meio do LOOP_GET_STATUS ioctl, que chama loop_get_status_old , que obtém seus dados de um struct loop_info . O campo de nome nessa estrutura de dados do kernel é limitado a LO_NAME_SIZE = 64 bytes. (Há também um loop_get_status64 e struct loop_info64 , mas eles têm a mesma limitação.) Então essa limitação é intrínseca, você não pode fazer nada melhor.
De qualquer forma, essa estrutura de dados mostra o nome original do dispositivo ou arquivo subjacente, mas você pode renomeá-lo (ou mesmo removê-lo), e isso não será refletido na saída de losetup .
A saída de losetup mostra o identificador do sistema de arquivos ( st_dev ) e inode ( st_ino ) do arquivo, por exemplo, [fc03]:33030504 . Você pode encontrar o dispositivo de bloco para o sistema de arquivos, pesquisando em /proc/partitions (linha começando com 252 3 ). Em seguida, procure o ponto de montagem desse dispositivo de bloco em /proc/mounts . Em seguida, execute find /mount/point -inum 33030504 para localizar o arquivo. Sim, é complicado, e não, não há maneira mais rápida (bem, há debugfs para alguns tipos de sistema de arquivos ).