Szukałem sposobu na odświeżenie magistrali scsi (lub jakiejkolwiek innej magistrali), która pozwoliłaby mojemu jądru (2.6.18-194-el5 na CentOS 5.5) dowiedzieć się o partycjach na dysku, i nie mogłem nie ma sposobu. partprobe zrobiło to natychmiast. W jaki sposób?
Ponieważ jest to ważne, oto co robiłem:
Chciałem poćwiczyć trochę rzeczy związanych z partycjami, takich jak zmiana rozmiaru, tworzenie kopii zapasowej MBR i przywracanie go, i tak dalej. Utworzyłem partycję 20 GB na / dev / sdb, utworzyłem kopię zapasową MBR:
dd if = / dev / sdb of = sdb.mbr bs = 512 count = 1
potem poszedłem do fdisk, usunąłem partycję, napisałem ją i wyszedłem.
ls / dev / sdb *
pokazał, że nie było podziału, oraz
fdisk -l / dev / sdb '
dopasowane, więc pomyślałem, że jestem dobry.
Następnie odwróciłem dd:
dd if = sdb.mbr of = / dev / sdb bs = 512 count = 1
Oczywiście w tym momencie nic nie zrobiłem
ls / dev / sdb *
nie wyświetlał żadnych partycji, ale
fdisk -l
pokazał partycję, prawdopodobnie dlatego, że czyta pierwsze 512 bajtów na dysku i nie polega na jądrze. Wiedziałem, że muszę odświeżyć autobus, więc wszedłem do / sys / class / scsi_host / host1 i zrobiłem
echo "- - -"> skanowanie
i robić
ls / dev / sdb
nie pokazałem nic nowego, więc poszedłem do / sys / bus / scsi / devices i dla każdego z wymienionych urządzeń zrobiłem
echo 1> ponowne skanowanie
i to nie działało.
Następnie przeprowadziłem więcej badań nad tym problemem i natknąłem się na „partprobe”, który pochodzi z parted. Uruchomiłem go i zadziałało natychmiast.
Jeśli nie otrzymam tutaj prawdopodobnej odpowiedzi, prawdopodobnie po prostu pójdę po źródło i sprawdzę je, ale sądzę, że są tu czarodzieje poza mną, więc pomyślałem, że spodobałbym się wam wszystkim.