GNU/Linux >> Znalost Linux >  >> Linux

Rozdíly mezi /dev/sda a /dev/sda1

Řešení 1:

Na moderním systému se zařízení oddílu zobrazí pouze v případě, že oddíl skutečně existuje.

Na disku s tabulkou oddílů MBR odpovídají čísla oddílů 1 až 4 čtyřem slotům v tabulce oddílů, nazývaným „primární“ oddíly. Nemusí se vyplňovat postupně, takže je například možné mít sda2, ale ne sda1. Čísla oddílu 5 a vyšší odpovídají "logickým jednotkám" v rozšířeném oddílu a ty jsou vždy číslovány postupně, takže nemůžete mít sda6, aniž byste měli také sda5.

Na disku s tabulkou oddílů GPT může být mnohem více (obvykle až 128) oddílů a všechny jsou „primární“. Můžete tedy mít disk, jehož jediným oddílem je například sda9.

Pokud disk nemá žádnou tabulku oddílů, pak samozřejmě nebude mít žádná zařízení oddílů.

Starší systémy – ty, které používají statický /dev spíše než ten spravovaný udev – budou mít obvykle uzly zařízení pro všechna možná čísla oddílů bez ohledu na to, zda oddíly skutečně existují. (Pokus o otevření souboru zařízení pro neexistující oddíl se samozřejmě nezdaří.)

Je možné upustit od dělení a umístit souborový systém přímo na disk. Když připojíte blokové zařízení, ovladač souborového systému obvykle hledá superblok s předem určeným posunem od začátku zařízení, a protože začátek oddílu není začátkem samotného disku, superblok pro souborový systém v oddílu je umístěn na jiném místě na disku než superblok pro souborový systém vytvořený na zařízení "celý disk".

Takže pokud měl disk dříve jen souborový systém a pak byl rozdělen a v oddílu byl vytvořen souborový systém, mohl tam být stále starý superblok, např. v malé mezeře před začátkem prvního oddílu. Takže disk stále vypadá, že má souborový systém jak na surovém diskovém zařízení, tak na diskovém zařízení, protože ať se pokusíte připojit kterýkoli z nich, když ovladač souborového systému hledá superblok, najde jej.

Ve skutečnosti však není bezpečné připojit a používat oba souborové systémy, protože se na disku překrývají. Jeden může mít důležité účetní údaje v tom, co druhý považuje za volné místo. Proto je dobré vynulovat začátek blokového zařízení, odstranit případné nežádoucí superbloky, když chcete změnit nezpracovaný disk na rozdělený nebo naopak, nebo změnit typ souborového systému používaného na oddílu atd. .

Řešení 2:

Pokud vím, když jádro detekuje nové blokové zařízení na sběrnici podobné scsi (včetně sata), navíc přidá uzel v /dev pro celý disk samotný, např. /dev/sda pokusí se zjistit, zda existuje tabulka oddílů. Pokud existují čitelné oddíly, vytvoří se uzly oddílu očíslované podle toho, zda se jedná o fyzické nebo logické oddíly (věřím, že logické oddíly začínají na #5).

Pokud vidíte diskový uzel, ale bez uzlů diskového oddílu, znamená to, že nebyly zjištěny žádné diskové oddíly. Nejsem si vědom žádného případu, kdy byste mohli připojit fyzické zařízení, protože by to znamenalo, že existuje souborový systém přímo zapsaný na fyzické zařízení bez jakékoli tabulky oddílů. Může se stát, že v případě, že existuje pouze jeden oddíl, mount bude interpretovat mount /dev/sda příkaz ve významu /dev/sda1 , ale nikdy jsem to netestoval.

Řešení 3:

/dev/sda - nezpracované zařízení

/dev/sda1 - 'virtuální' zařízení, jako oddíl.

Jeden zajímavý rozdíl je v tom, že pokud má zařízení oddíly (má data MBR nebo podobné), nemůžete číst data MBR z žádného z virtuálních zařízení, protože data MBR jsou umístěna mimo jakékoli oddíly na zařízení. MBR se nachází v prvním sektoru zařízení (CHS:0 0 1). Je dobrým zvykem vytvořit první oddíl o velikosti 1 MiB po začátku zařízení.

Chcete-li číst data MBR, musíte použít nezpracované zařízení (/dev/sda), tj.:

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

Linux
  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. Debian – Přesunutí /var, /home do samostatného oddílu?

  2. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  3. Jak kódovat base64 /dev/random nebo /dev/urandom?

  1. Jak zaměníte /dev/sda s /dev/sdb?

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak Linux používá /dev/tty a /dev/tty0