GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan antara /dev/sda dan /dev/sda1

Solusi 1:

Pada sistem modern, perangkat partisi hanya akan muncul jika partisi tersebut benar-benar ada.

Pada disk dengan tabel partisi MBR, nomor partisi 1 sampai 4 sesuai dengan empat slot di tabel partisi, yang disebut partisi "primer". Mereka tidak harus diisi secara berurutan, jadi mungkin, misalnya, memiliki sda2 tetapi tidak ada sda1. Nomor partisi 5 dan lebih tinggi sesuai dengan "drive logis" di partisi yang diperluas, dan itu selalu diberi nomor secara berurutan, jadi Anda tidak dapat memiliki sda6 tanpa memiliki sda5 juga.

Pada disk dengan tabel partisi GPT, bisa ada lebih banyak (biasanya hingga 128) partisi, dan semuanya "primer". Jadi, Anda dapat memiliki disk yang hanya memiliki partisi sda9, misalnya.

Jika disk tidak memiliki tabel partisi, tentu saja disk tersebut tidak memiliki perangkat partisi.

Sistem yang lebih lama — yang menggunakan /dev statis daripada yang dikelola oleh udev — biasanya akan memiliki simpul perangkat untuk semua kemungkinan nomor partisi, terlepas dari apakah partisi tersebut benar-benar ada. (Mencoba membuka file perangkat untuk partisi yang tidak ada tentu saja akan gagal.)

Dimungkinkan untuk tidak mempartisi dan meletakkan sistem file langsung pada disk. Saat Anda memasang perangkat blok, driver sistem file biasanya mencari superblok pada offset yang telah ditentukan sebelumnya dari awal perangkat, dan karena awal partisi bukanlah awal dari disk itu sendiri, superblok untuk sistem file di partisi terletak di tempat yang berbeda di disk dari superblok untuk sistem file yang dibuat di perangkat "seluruh disk".

Jadi jika disk dulu hanya memiliki sistem file, lalu dipartisi dan sistem file dibuat di partisi, superblok lama mungkin masih ada, mis. di celah kecil sebelum awal partisi pertama. Jadi disk tampaknya masih memiliki sistem file di perangkat disk mentah dan di perangkat partisi, karena mana pun yang Anda coba pasang, saat driver sistem file mencari superblok, ia akan menemukannya.

Sebenarnya tidak aman untuk memasang dan menggunakan kedua sistem file, karena keduanya tumpang tindih pada disk. Seseorang mungkin memiliki data pembukuan penting dalam apa yang menurut orang lain adalah ruang kosong. Itulah mengapa merupakan ide yang bagus untuk me-nol-kan awal perangkat blok, untuk menghapus superblok yang tidak diinginkan, saat Anda ingin mengubah disk mentah menjadi disk terpartisi, atau sebaliknya, atau mengubah jenis sistem file yang digunakan pada partisi, dll. .

Solusi 2:

Sejauh yang saya tahu, ketika kernel mendeteksi perangkat blok baru pada bus seperti scsi (termasuk. sata), selain menambahkan node di /dev untuk seluruh disk itu sendiri, mis. /dev/sda itu akan mencoba untuk melihat apakah ada tabel partisi. Jika ada partisi yang dapat dibaca, itu kemudian akan membuat node partisi diberi nomor tergantung pada apakah itu partisi fisik atau logis (Saya yakin partisi logis dimulai dari #5).

Jika Anda melihat simpul disk tetapi tanpa simpul partisi, ini berarti belum ada partisi yang terdeteksi. Saya tidak mengetahui adanya contoh di mana Anda dapat memasang perangkat fisik, karena itu menyiratkan bahwa ada sistem file yang langsung ditulis ke perangkat fisik tanpa tabel partisi apa pun. Bisa jadi jika hanya ada satu partisi, mount akan menginterpretasikan mount /dev/sda perintah dalam arti /dev/sda1 , tapi saya belum pernah menguji ini.

Solusi 3:

/dev/sda - perangkat mentah

/dev/sda1 - perangkat 'virtual', seperti partisi.

Satu perbedaan yang menarik adalah jika perangkat memiliki partisi (memiliki data MBR atau sejenisnya), Anda tidak dapat membaca data MBR dari perangkat virtual mana pun, karena data MBR berada di luar partisi mana pun pada perangkat. MBR berada di sektor pertama perangkat (CHS:0 0 1). Ada praktik yang baik untuk membuat partisi pertama pada 1MiB setelah permulaan perangkat.

Untuk membaca data MBR, Anda harus menggunakan perangkat mentah (/dev/sda), yaitu:

dd if=/dev/sda of=mbr.bin bs=512 count=1

Linux
  1. Apa itu file /dev/zero dan /dev/null di Linux?

  2. Bagaimana cara menyandikan base64 /dev/random atau /dev/urandom?

  3. Bagaimana Anda menukar/dev/sda dengan/dev/sdb?

  1. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  2. kernel:menonaktifkan /dev/kmem dan /dev/mem

  3. Bagaimana Linux menggunakan /dev/tty dan /dev/tty0

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Apakah salah menautkan /dev/random ke /dev/urandom di Linux?

  3. Buat perangkat blok virtual yang menulis ke /dev/null