Eu estava procurando uma maneira de atualizar o barramento scsi (ou qualquer outro barramento) que permitiria ao meu kernel (2.6.18-194-el5 no CentOS 5.5) saber sobre as partições de uma unidade, e eu não consegui encontrar um caminho. partprobe fez isso instantaneamente. Como?
Como é importante, aqui está o que eu estava fazendo:
Eu queria praticar em coisas específicas da partição, como redimensionar, fazer o backup do MBR e restaurá-lo, e assim por diante. Eu tinha criado uma partição de 20GB em / dev / sdb, copiei o MBR:
dd if=/dev/sdb of=sdb.mbr bs=512 count=1
depois eu entrei no fdisk, apaguei a partição, escrevi e saí.
ls /dev/sdb*
mostrou que não havia partição e
fdisk -l /dev/sdb'
combinou, então eu percebi que era bom.
Eu então inverti o dd:
dd if=sdb.mbr of=/dev/sdb bs=512 count=1
Claro, eu não fiz nada naquele momento, então
ls /dev/sdb*
não listou nenhuma partição, mas
fdisk -l
mostrou a partição, presumivelmente porque lê os primeiros 512 bytes no disco e não depende do kernel. Eu sabia que teria que atualizar o barramento, então entrei em / sys / class / scsi_host / host1 e fiz
echo "- - -" > scan
e fazendo
ls /dev/sdb
não mostrou nada de novo, então fui para / sys / bus / scsi / devices e para cada um dos dispositivos listados, eu fiz
echo 1 > rescan
e isso não funcionou.
Eu então fiz mais pesquisas sobre o problema e encontrei o 'partprobe', que vem com o parted. Eu corri e funcionou instantaneamente.
Se eu não conseguir uma resposta provável aqui, provavelmente vou buscar a fonte e procurar, mas eu acho que há magos aqui além de mim, então eu pensei em apelar para todos vocês .