Não tem jeito.
Da perspectiva UDEV, os uevents das partições são enviados diretamente do kernel, não há indireção.
Do lado do kernel, as coisas acontecem de __blkdev_get()
que sempre será lido em menos parte da tabela de partições com disk_get_part()
. Isso vai ler o suficiente da tabela de partições para entender que tipo de tabela de partições ela é.
Até onde você pode ir é desabilitar CONFIG_MSDOS_PARTITION
durante a compilação do kernel para que msdos_partition()
não será usado dentro de check_partition()
. Eu não tenho certeza quanto da partição lê mais em comparação com disk_get_part()
.
Notas
- Isto supõe que seu disco usa uma partição MSDOS. Existem vários outros parâmetros
CONFIG_*_PARTIOTION
em/block/partitions/check.c
. - Você precisaria inicializar este kernel a partir de uma unidade que usa um tipo de partição diferente daquela que você deseja fazer backup. Isso pode ou não ser problemático (partições GPT são bastante viáveis hoje em dia).
- Outra maneira é que, talvez, você poderia
rmmod scsi
. Mas isso exigiria que você não precisasse do subsistema SCSI para nada. A única maneira que posso pensar que você pode conseguir isso é através de uma inicialização de rede. Você pode então conectar o disco danificado, usarmodprobe scsi
para recuperar o subsistema e fazer o nó (mknod
) manualmente. Isso é hipotético (eu não tentei isso), não tenho certeza semknod
não acionará__blkdev_get()
estragando todo o esforço.