Bagaimana cara mencegah penggantian nomor disk saat reboot di OS X?

12

Saya memiliki 3 drive fisik di Mac Pro dengan Mac OS X 10.6.4. Kadang-kadang setelah reboot mesin, penomoran disk berubah sehingga / dev / disk # tidak merujuk drive yang sama seperti yang dilakukan sebelum reboot.

Contoh

/dev/disk0 -> 64GB SSD drive
/dev/disk1 -> 640GB Hitachi
/dev/disk2 -> 160GB WD (BootCamp)

Setelah me-reboot pemetaan mungkin

/dev/disk0 -> 160GB WD (BootCamp)
/dev/disk1 -> 640GB Hitachi
/dev/disk2 -> 64GB SSD drive

Yang lebih membingungkan adalah bahwa pemetaan ulang tidak konsisten. Bagi kebanyakan hal ini tidak relevan. Namun saya juga telah menginstal Parallels untuk memungkinkan akses ke partisi BootCamp dari dalam OS X. Parallels menggunakan path / dev / disk # dalam file konfigurasi itu, setelah me-reboot OS XI meluncurkan Parallels dan ia memberi tahu saya bahwa disk tidak lagi ada .

Apakah ada cara untuk memberitahu OS X untuk selalu menetapkan drive yang diberikan ke / dev / disk0?

Paul Alexander
sumber
3
Ini bukan dalam bidang keahlian saya, tetapi dapatkah sesuatu dilakukan dengan volume UUID?
fideli
@fideli: Tidak tahu ... itulah yang saya butuhkan bantuannya :) Saya berharap OSX melakukan hal itu - ingat di mana drive dengan UUID yang diberikan sudah terpasang dan meninggalkannya di sana tetapi sepertinya tidak kasus.
Paul Alexander
Di Linux disk memiliki symlink seperti / dev / disk / by-uuid / [disk-uuid] yang tidak berubah walaupun penomorannya tidak. Mungkin OSX serupa?
solarc

Jawaban:

2

Sejauh yang saya mengerti MacOS tidak memiliki kemampuan itu, meskipun untuk menjalankan paralel itu mungkin tidak sepenuhnya diperlukan.

menggunakan macports dan menginstal e2fsprogs dengan tambalan kecil:

diff -r e2fsprogs-1.41.12/misc/Makefile e2fsprogs-1.41.12.patched/misc/Makefile
399c399
>       $(LIBEXT2FS) $(LIBCOM_ERR)
---
<       $(LIBEXT2FS)
401,402c401

Anda dapat menggunakan blkid -s UUID / dev / rdisk * untuk menghitung partisi, disk dan mendapatkan masing-masing uuids (untuk sistem file yang didukung yang cukup banyak).

Setelah itu menambahkan softlink dengan 'ln -s' atau membuat simpul perangkat alternatif dengan mknod akan berfungsi (dan kemudian merujuk perangkat psudo- / klon dari Parallels). Saya telah melakukan trik serupa dengan Fusion, tetapi saya belum menginstal Paralells sekarang (jadi saya tidak bisa menguji)

stat -f "% Sr% Z" / dev / rdisk s memberi Anda peta melalui perangkat ke mayor, minor untuk digunakan jika paralelnya tidak menerima tautan lunak ke perangkat.

yang dapat digunakan seperti pada contoh berikut:

some@host:/e2fsprogs-1.41.12$ blkid -s UUID /dev/rdisk*s* 
/dev/rdisk0s1: UUID="76D6-1701" 
/dev/rdisk0s2: UUID="654F73AE51849687" 
/dev/rdisk1s1: UUID="51FC4E72-BFA9-4DBD-9A5C-0E5H731DB0ED" 
some@host:/e2fsprogs-1.41.12$ stat -f "%Sr %Z" /dev/rdisk*
rdisk0 14,0
rdisk0s1 14,1
rdisk0s2 14,2
rdisk1 14,3
rdisk1s1 14,4

# okay, UUID 51FC4E72-BFA9-4DBD-9A5C-0E5H731DB0ED is a partition
# on the disk we want to use. so we make a 'private' device node
# pointing to the device containing that partition.

some@host:/e2fsprogs-1.41.12$ sudo mknod /dev/pdisk1 b 14 3

# just a quick verify that the mknod worked as expected ...
some@host:/~$ sudo dd if=/dev/rdisk1  count=10 2>/dev/null | md5 
19d55b28485771bc80acdddbd1b45faf
some@host:/~$ sudo dd if=/dev/pdisk1  count=10 2>/dev/null | md5 
19d55b28485771bc80acdddbd1b45faf

Sekarang satu-satunya yang tersisa adalah menulis skrip dan menggunakan instruksi di http://support.apple.com/kb/HT2420?viewlocale=en_US untuk membuatnya berjalan saat boot.

Tapi itu untuk orang lain untuk menyelesaikan ...

Tuan Andersson
sumber
Hai terima kasih atas jawaban terperinci. Mencoba mknoddengan Fusion tetapi memberikan kesalahan. ./vmware-rawdiskCreator create /dev/pdisk1 fullDevice ~/5tc ide Unable to create the source raw disk: The specified device is not a valid physical disk device (20).Ada petunjuk? Cheers
Alexandre G
Jawaban ini sangat cocok untuk saya untuk masalah yang sama, tetapi dengan VMware Fusion. Sayangnya setelah ini, VMware tampaknya tidak suka jalur perangkat disk yang tidak standar (dalam file vmdk, merujuk disk / partisi). Sepertinya mereka menyerahkannya ke perpustakaan gaya diskutil di bawah tenda, yang tidak tahu apa yang harus dilakukan dengan mereka. Begitu dekat ... Alternatif dalam kasus saya mungkin secara terprogram meregenerasi file vmdk setelah penemuan.
Tom
1

Saya pernah mendengar orang Mac yang lebih pintar daripada saya menyiratkan bahwa penomoran disk agak arbitrer dan orang tidak dapat bergantung pada perangkat yang sama mendapatkan nomor yang sama setelah reboot. Itu disebutkan dalam referensi untuk membuat irisan RAID melalui diskutil di Terminal.

Tidak ada utilitas tingkat rendah yang saya temukan, seperti diskutil, pdisk atau gpt, tampaknya dapat mempengaruhi penomoran disk. Saya khawatir ini mungkin tidak dapat dikontrol.

Theo Belk
sumber
1
Huh, saya tidak berpikir jawabannya -1 buruk. Kadang jawabannya adalah "Anda tidak bisa melakukan itu."
Theo Belk
1

Untuk melihat nama path file perangkat karakter untuk volume pada hard disk internal Anda, buka aplikasi Terminal, yang terletak di / Aplikasi / Utilitas. Ketik yang berikut ini, diikuti dengan tombol Kembali:

df

Anda dapat melihat nama path lengkap untuk file perangkat karakter untuk volume saat ini dengan membuka Terminal, lalu mengetik (tekan Return setelah setiap baris):

cd /dev
ls -lias

Setiap partisi (apakah ditampilkan di Finder atau tidak) pada setiap volume yang dipasang akan memiliki dua file dalam daftar untuk direktori / dev. Nama-nama file mengidentifikasi perangkat dengan nomor dan partisi pada perangkat dengan nomornya. Anda mungkin harus menggulirkan sedikit di jendela Terminal untuk menemukan file.

mralexgray
sumber
0

Cobalah untuk menambahkan entri ke Anda /etc/fstab.

An /etc/fstab example:

# Identifier, mount point, fs type, options1
UUID=DF000C7E-AE0C-3B15-B730-DFD2EF15CB91 /export ufs ro
UUID=FAB060E9-79F7-33FF-BE85-E1D3ABD3EDEA none hfs rw,noauto
LABEL=This40Is40The40Volume40Name none msdos ro

Identifier digunakan untuk mengidentifikasi volume; LABEL adalah nama volume, UUID adalah Drive Pengidentifikasi Unik Universal. Anda dapat menggunakan keduanya, tetapi UUID adalah pilihan terbaik karena mengubah nama volume tidak akan mengubah pengidentifikasi ini.

Dari http://macosx.com/forums/mac-os-x-system-mac-software/314314-stop-disk-unmounting-automounting.html

miku
sumber
Ini hanya mengubah tempat drive dipasang di direktori / Volume. Tidak ada pengaruhnya pada / dev / disk ??? tugas.
Paul Alexander
0

Nomor drive didasarkan pada saat perangkat fisik disebutkan saat boot. Ini telah terjadi pada saya juga di Windows. Saya sudah mencari panjang dan sulit untuk resolusi untuk ini, dan saya belum menemukan satu. Saya bisa mendapatkan disk dalam urutan "benar" ketika saya mengganti kabel SATA, tapi ini hanya perbaikan sementara. Dalam kasus Anda, karena Parallels bergantung pada penomoran disk untuk lintasan, mungkin yang terbaik adalah membuat skrip untuk memperbarui file konfigurasi tersebut saat startup.

Nick
sumber
0

Saya pernah mengalami masalah ini sebelumnya, mereka biasanya berubah setelah saya melakukan pembaruan atau menginstal sesuatu, tetapi kembali ke penomoran aslinya setelah restart kedua. Ini jelas tidak ideal, tetapi sepertinya bekerja untuk saya ...

Oliver
sumber