Różnice między / dev / sda i / dev / sda1

17

Wiem, że / dev / sda to surowe urządzenie, a / dev / sda1 to partycja lub urządzenie wirtualne.

Ale jestem trochę zdezorientowany, dlaczego sda # pojawia się tylko czasami lub tylko w niektórych systemach. Co powoduje to? Być może czasy, w których dyski sda # nie pojawiają się, są wtedy, gdy nie są podzielone na partycje? A może nie jest tak samo na całym sprzęcie?

I dlaczego mogę zamontować oba? (czasami) Czy partycja nie powinna być tą, którą można zamontować?

Wszelkie zasoby lub kolory, które możesz podać, byłyby bardzo mile widziane. Z góry dziękuję.

maniak
źródło
1
„A dlaczego mogę zamontować oba?” [potrzebne źródło]
Ignacio Vazquez-Abrams,
1
@ IgnacioVazquez-Abrams: Naprawdę nie mam cytatu. Zamontowałem oba na pudełku Debiana i mogłem pisać i czytać na obu. Nie wiem dlaczego. Nie jestem facetem od sprzętu ani sysadminów, dlatego prosiłem o wyjaśnienia. Jeszcze raz dziękuję wszystkim za pomoc!
wabik

Odpowiedzi:

19

W nowoczesnym systemie urządzenie partycji pojawi się tylko wtedy, gdy partycja faktycznie istnieje.

Na dysku z tablicą partycji MBR partycje od 1 do 4 odpowiadają czterem gniazdom w tablicy partycji, zwanym partycjami „podstawowymi”. Nie muszą być wypełniane sekwencyjnie, więc możliwe jest na przykład posiadanie sda2, ale bez sda1. Partycje o numerach 5 i wyższych odpowiadają „napędom logicznym” w partycji rozszerzonej, a te zawsze są numerowane sekwencyjnie, więc nie możesz mieć sda6 bez sda5.

Na dysku z tabelą partycji GPT może być o wiele więcej (zwykle do 128) partycji, a wszystkie są „podstawowe”. Na przykład możesz mieć dysk, którego jedyną partycją jest sda9.

Jeśli dysk nie ma tablicy partycji, to oczywiście nie będzie miał żadnych urządzeń partycjonujących.

Starsze systemy - te korzystające ze statycznego / dev zamiast zarządzanego przez udev - zazwyczaj mają węzły urządzeń dla wszystkich możliwych numerów partycji, niezależnie od tego, czy partycje faktycznie istnieją. (Próba otwarcia pliku urządzenia dla nieistniejącej partycji oczywiście się nie powiedzie.)


Możliwe jest zrezygnowanie z partycjonowania i umieszczenie systemu plików bezpośrednio na dysku. Kiedy montujesz urządzenie blokowe, sterownik systemu plików zwykle szuka superbloku z ustalonym przesunięciem od początku urządzenia, a ponieważ początek partycji nie jest początkiem samego dysku, superblok dla systemu plików na partycji znajduje się w innym miejscu na dysku niż superblok dla systemu plików utworzonego na urządzeniu „całego dysku”.

Jeśli więc dysk miał tylko system plików, a następnie został podzielony na partycje, a system plików został utworzony na partycji, stary superblok może nadal tam być, np. W małej szczelinie przed rozpoczęciem pierwszej partycji. Wygląda więc na to, że dysk ma system plików zarówno na surowym urządzeniu dyskowym, jak i na urządzeniu partycjonującym, ponieważ niezależnie od tego, który z nich spróbujesz zamontować, sterownik systemu plików szuka superbloku.

W rzeczywistości nie jest bezpiecznie montować i używać obu systemów plików, ponieważ nakładają się one na dysk. Jedna może mieć ważne dane księgowe w tym, co zdaniem drugiego jest wolną przestrzenią. Dlatego dobrym pomysłem jest wyzerowanie początku urządzenia blokowego, usunięcie niechcianych superbloków, gdy chcesz zmienić dysk raw na partycjonowany lub odwrotnie, lub zmienić typ systemu plików używanego na partycji itp. .

Wyzard
źródło
6

O ile wiem, kiedy jądro wykryje nowe urządzenie blokowe na szynie podobnej do SCSI (w tym sata), oprócz dodania węzła /devdla całego dysku, np /dev/sda. Spróbuje sprawdzić, czy istnieje tablica partycji . Jeśli istnieją czytelne partycje, utworzą one węzły partycji ponumerowane w zależności od tego, czy są to partycje fizyczne czy logiczne (uważam, że partycje logiczne zaczynają się od # 5).

Jeśli widzisz węzeł dysku, ale bez węzłów partycji, oznacza to, że nie wykryto żadnych partycji. Nie znam żadnego przypadku, w którym można zamontować urządzenie fizyczne, ponieważ oznaczałoby to, że istnieje system plików zapisany bezpośrednio na urządzeniu fizycznym bez tablicy partycji. Może się zdarzyć, że w przypadku, gdy będzie tylko jedna parycja, mountinterpretuje mount /dev/sdapolecenie jako znaczenie /dev/sda1, ale nigdy tego nie testowałem.

rosnąć
źródło
2
Państwo może mieć system plików bezpośrednio na samym dysku, bez tablicy partycji. (Urządzenie przenośne skonfigurowane w ten sposób jest czasem określane jako „superfloppy”, ponieważ dyskietki zwykle nie były podzielone na partycje.)
Wyzard,
Doskonały punkt Miałem słabą pamięć o włożeniu dysku USB do laptopa i możliwości montażu, /dev/sdcale nie byłem pewien, czy to wymyśliłem.
growse
3

/ dev / sda - surowe urządzenie

/ dev / sda1 - urządzenie „wirtualne”, takie jak partycja.

Jedną interesującą różnicą jest to, że jeśli urządzenie ma partycje (ma dane MBR lub podobne), nie można odczytać danych MBR z żadnego z urządzeń wirtualnych, ponieważ dane MBR znajdują się poza dowolnymi partycjami na urządzeniu. MBR znajduje się w pierwszym sektorze urządzenia (CHS: 0 0 1). Dobrą praktyką jest utworzenie pierwszej partycji o wielkości 1 MB po uruchomieniu urządzenia.

Aby odczytać dane MBR, musisz użyć surowego urządzenia (/ dev / sda), tj .:

dd if=/dev/sda of=mbr.bin bs=512 count=1
colemik
źródło
0

Ach, tablice partycji i nazwy urządzeń. Przygotuj się, aby się z nimi pogubić.

Czy masz serwer HP z kontrolerem Compaq RAID? Nie / dev / sda, przywitaj się z / dev / ccsis.

Masz stary komputer stacjonarny ze starym interfejsem IDE? Nie / dev / sda, przywitaj się z / dev / hda.

Masz nowoczesny serwer z napisem you / dev / sda, ale po instalacji prawie go nie widzisz? Przywitaj się z LVM, instalacja systemu operacyjnego sprawiła, że ​​twój / dev / sda jest woluminem fizycznym LVM, utworzył w nim grupę woluminów i wolumin logiczny.

Więc ... jeśli nie widzisz czegoś takiego jak / dev / sda1, możesz mieć LVM lub podobny w użyciu, który stworzył własne „partycje”.

Czy to odpowiedź na Twoje pytanie?

Janne Pikkarainen
źródło