GNU/Linux >> Linux Esercitazione >  >> Linux

15 Esempi di comandi Linux sfdisk per gestire le partizioni del disco

Se sei un amministratore di sistema, la gestione della partizione del disco rigido del tuo server Linux è un'attività critica.

In questo tutorial, ci concentreremo su come utilizzare l'utilità della riga di comando sfdisk per gestire le partizioni del disco rigido.

Sebbene sfdisk sia simile a fdisk, ci sono poche attività di manipolazione delle partizioni che sono molto facili da eseguire in sfdisk. Ad esempio, puoi creare nuove partizioni in un metodo non interattivo usando sfdisk.

Le seguenti attività di sfdisk sono trattate in questo tutorial:

  1. Visualizza partizioni disco esistenti
  2. Cambia unità di visualizzazione (dimensioni display in MB)
  3. Crea nuove partizioni del disco (metodo interattivo)
  4. Verifica la coerenza della tabella delle partizioni
  5. Visualizza la dimensione totale della partizione
  6. Esegui il dump dei dettagli della partizione del disco su un file di testo
  7. Crea nuove partizioni da file di testo (metodo non interattivo)
  8. Visualizza dettagli estesi sulla partizione
  9. Visualizza la geometria del disco per il debug
  10. Visualizza tutti i tipi di partizione del disco
  11. Gestisci solo una singola partizione del disco
  12. Modalità di prova per la verifica
  13. Segna una partizione specifica come avviabile
  14. Cambia tipo di partizione
  15. Crea nuove partizioni dallo script della shell (metodo non interattivo)

1. Visualizza le partizioni del disco esistenti

Usando l'opzione -l puoi visualizzare tutte le partizioni del tuo disco. -l sta per lista.

Per impostazione predefinita, verranno visualizzate le partizioni di tutti i dischi sui tuoi sistemi.

# sfdisk -l

Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1   *      0+   1044-   1045-   8387584   83  Linux
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track

In quanto sopra:

  • Mostra le partizioni per entrambi i dispositivi sda e sdf.
  • sda ha solo una partizione. cioè sda1. Ma l'opzione -l visualizzerà sempre tutte e 4 le informazioni sulla partizione primaria. Poiché, in questo esempio, sda ha solo una partizione (cioè sda1), le restanti 3 partizioni (sda2, sda3, sda4) indicheranno "Empty" nell'ultima colonna.
  • Il dispositivo sdf non ha alcuna partizione. cioè Non è stato ancora creato nulla su questo dispositivo. Quindi, non elenca nulla per questo dispositivo.

Puoi anche visualizzare le partizioni del disco di un dispositivo specifico passando il nome del dispositivo come mostrato di seguito.

# sfdisk -l /dev/sdf

Invece di -l, puoi anche usare –list come mostrato di seguito.

sfdisk --list
sfdisk --list /dev/sdf

Se sei nuovo nella gestione del disco rigido, potresti anche voler capire come utilizzare il normale comando fdisk affidabile:7 Esempi di comandi fdisk di Linux per gestire la partizione del disco rigido

2. Modifica unità di visualizzazione (dimensioni display in MB)

Per impostazione predefinita, sfdisk visualizzerà la dimensione in blocchi. Nell'output sfdisk -l sopra, guarda la colonna chiamata "#blocks".

Tuttavia, se vuoi visualizzare la dimensione in MB, usa l'opzione -u come mostrato di seguito. -u sta per Unit. Devi specificare il tipo di unità. In questo esempio, il tipo di unità che stiamo specificando è M (che è MB)

L'opzione -uM sostituirà la colonna "#cyls" dall'output sopra con "MiB" (dimensione in MB) come mostrato di seguito.

# sfdisk -l -uM

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: 1MiB = 1024*1024 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start   End    MiB    #blocks   Id  System
/dev/sdf1         0+  8032-  8033-   8225279+  83  Linux
/dev/sdf2      8032+  8189-   157-    160650   83  Linux
/dev/sdf3         0      -      0          0    0  Empty
/dev/sdf4         0      -      0          0    0  Empty

Di seguito sono riportati i diversi tipi di unità che puoi specificare:

  • M per MB
  • C per numero di cilindri (questa è l'impostazione predefinita)
  • S per numero di settori
  • B per numero di blocchi (questo viene visualizzato anche nell'output predefinito insieme a #cilindri)
# sfdisk -l -uM
# sfdisk -l -uC 
# sfdisk -l -uS 
# sfdisk -l -uB 

3. Crea nuove partizioni del disco (metodo interattivo)

Nell'esempio seguente, prenderemo un disco rigido vuoto (sdf) e creeremo partizioni su di esso usando sfdisk.

# sfdisk /dev/sdf

Quello che segue è l'output del comando precedente suddiviso in più sezioni per capirlo facilmente.

Innanzitutto, controllerà l'sdf per assicurarsi che non sia attualmente montato o utilizzato da qualcun altro.

Checking that no-one is using this disk right now ...
OK

Successivamente, visualizzerà le informazioni sulla partizione corrente su questo dispositivo. Come visto da qui, attualmente non ci sono partizioni sul dispositivo sdf.

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
sfdisk:  /dev/sdf: unrecognized partition table type

Old situation:
sfdisk: No partitions found

Successivamente, ti chiederà di inserire la dimensione della partizione per tutte e 4 le partizioni primarie. Anche se desideri creare una sola partizione, ti verranno richiesti 4 orari diversi per tutte le partizioni primarie.

Di seguito:

  • In questo esempio, mi piace creare due partizioni.
  • Quindi, quando è stato richiesto "/dev/sdf1 :", sto creando la prima partizione. Qui, ho inserito "0 1024". 0 è l'inizio del cilindro e 1024 è la fine del cilindro per la prima partizione.
  • Successivamente, quando è stato richiesto "/dev/sdf2 :", sto creando la seconda partizione. Qui, ho appena premuto invio, che occuperà tutto lo spazio rimanente e creerà la seconda partizione.
  • Successivamente, ho appena premuto invio per sdf3 e sdf4. Poiché non è rimasto spazio su sdf, sarà semplicemente vuoto come mostrato di seguito.
  • Inoltre, tieni presente che per impostazione predefinita creerà la partizione come tipo "Linux". Se vuoi cambiarlo in un tipo diverso, devi specificare il tipo.
Input in the following format; absent fields get a default value.
<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
Usually you only need to specify <start> and <size> (and perhaps <type>).

/dev/sdf1 :0 1024
/dev/sdf1          0+   1023    1024-   8225279+  83  Linux
/dev/sdf2 :
/dev/sdf2       1024    1043      20     160650   83  Linux
/dev/sdf3 :
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4 :
/dev/sdf4          0       -       0          0    0  Empty

Ora, sfdisk mostrerà le partizioni che creerà. Come mostrato di seguito, creerà due partizioni (sdf1 e sdf2).

New situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+   1023    1024-   8225279+  83  Linux
/dev/sdf2       1024    1043      20     160650   83  Linux
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.

Infine, chiederà conferma. Se hai commesso un errore e non vuoi creare le partizioni di cui sopra, digita "q" per uscire. Qui, ho digitato y per creare queste due nuove partizioni.

Do you want to write this to disk? [ynq] y
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)

Infine, ho verificato che le partizioni siano state create correttamente utilizzando sfdisk -l come mostrato di seguito.

# sfdisk -l /dev/sdf
Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+   1023    1024-   8225279+  83  Linux
/dev/sdf2       1024    1043      20     160650   83  Linux
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty

In una nota correlata, per la creazione di partizioni di grandi dimensioni, fare riferimento a questo:Come creare partizioni su Linux per dimensioni>2 TB usando Parted GPT

4. Verifica la coerenza della tabella delle partizioni

Utilizzare l'opzione -V (V maiuscola) per eseguire il controllo di coerenza sulle tabelle delle partizioni. V sta per verifica.

Come mostrato nell'output seguente, dirà "OK" quando tutto è a posto. Verranno visualizzati anche eventuali messaggi di avviso.

# sfdisk -V
Warning: partition 1 does not end at a cylinder boundary
/dev/sda: OK
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
/dev/sdf: OK

Puoi anche verificare solo un dispositivo specifico come mostrato di seguito.

# sfdisk -V /dev/sdf

Inoltre, puoi combinare l'opzione V e l come mostrato di seguito.

sfdisk -lV

Se stai eseguendo la verifica dall'interno di uno script di shell, puoi usare l'opzione -q insieme a V. q sta per quiet. In questo caso, non visualizzerà alcun output. Tuttavia, puoi controllare lo stato del comando per verificare se il controllo di coerenza è stato superato o meno, come mostrato di seguito.

# sfdisk -Vq 

# echo $?
0

Se vuoi verificare la coerenza del contenuto del disco stesso, usa questo metodo:10 esempi di comandi Linux Fsck per controllare e riparare il filesystem

5. Visualizza la dimensione totale della partizione

Per visualizzare la dimensione totale del disco comprese tutte le partizioni, utilizzare l'opzione -s. -s sta per dimensione.

Verrà visualizzata la dimensione totale della partizione in numero di blocchi.

Per impostazione predefinita, verrà visualizzata la dimensione totale della partizione per ogni singolo disco rigido del sistema. Inoltre, visualizzerà la dimensione totale di tutti i dischi del tuo sistema come mostrato di seguito.

# sfdisk -s
/dev/sda:   8388608
/dev/sdf:   8388608
total: 16777216 blocks

Puoi anche specificare la singola partizione del disco rigido (o) come mostrato di seguito.

# sfdisk -s /dev/sdf
8388608
# sfdisk -s /dev/sdf1
1654694

6. Scarica i dettagli della partizione del disco su un file di testo

sfdisk fornisce anche l'opzione per scaricare tutte le informazioni sulla partizione del disco in un file di testo.

Per questo usa l'opzione -d. -d sta per dump.

Per impostazione predefinita, -d scaricherà l'output sullo schermo. Ciò includerà le informazioni sulla partizione per tutti i dispositivi sul tuo sistema.

# sfdisk -d

Puoi anche scaricare le informazioni sulla partizione di un particolare dispositivo come mostrato di seguito.

# sfdisk -d /dev/sda

Per scaricarlo in un file di testo, procedi come segue. Questo scaricherà le informazioni sulla partizione di sda nel file di testo sda.out.

# sfdisk -d /dev/sda > sda.out

# cat sda.out
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=     2048, size= 16775168, Id=83, bootable
/dev/sda2 : start=        0, size=        0, Id= 0
/dev/sda3 : start=        0, size=        0, Id= 0
/dev/sda4 : start=        0, size=        0, Id= 0

7. Crea nuove partizioni da file di testo (metodo non interattivo)

Il bello dell'opzione -d è che puoi prendere un dump della partizione di un particolare dispositivo e usarlo per creare un dump della partizione simile su un altro dispositivo.

Ad esempio, se desideri replicare la partizione corrente sul dispositivo sda sul dispositivo sdf, puoi utilizzare l'opzione -d come mostrato di seguito.

Innanzitutto, prendi il dump del dispositivo sda come mostrato nell'esempio precedente nel file sda.out.

Nell'esempio sopra, come vediamo, abbiamo una partizione sul dispositivo sda.

Ora, sul dispositivo sdf, attualmente abbiamo due partizioni.

# sfdisk -l /dev/sdf
Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    499     500-   4016249+  83  Linux
/dev/sdf2        500    1043     544    4369680   83  Linux
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty

Ora usa il file sda.out dell'esempio precedente e usalo per creare partizioni simili sul dispositivo sdf come mostrato di seguito.

# sfdisk /dev/sdf < sda.out

Il comando precedente utilizzerà le informazioni sulla partizione dal file sda.out e le utilizzerà per creare automaticamente una nuova partizione su sdf senza chiedere alcun input all'utente come mostrato di seguito.

Checking that no-one is using this disk right now ...
OK

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Old situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    499     500-   4016249+  83  Linux
/dev/sdf2        500    1043     544    4369680   83  Linux
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty
New situation:
Units: sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
/dev/sdf1   *      2048  16777215   16775168  83  Linux
/dev/sdf2             0         -          0   0  Empty
/dev/sdf3             0         -          0   0  Empty
/dev/sdf4             0         -          0   0  Empty
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)

Ora, come puoi vedere dal seguente output, sdf ha una nuova partizione, che è simile a sda.

# sfdisk -l

Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1   *      0+   1044-   1045-   8387584   83  Linux
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1   *      0+   1044-   1045-   8387584   83  Linux
/dev/sdf2          0       -       0          0    0  Empty
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty

8. Visualizza i dettagli estesi della partizione

x sta per partizione estesa. Quando si combina x con l, verranno visualizzate anche le partizioni estese non primarie come mostrato di seguito.

# sfdisk -lx /dev/sdf

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    205     206-   1654694+  83  Linux
/dev/sdf2        206     411     206    1654695   83  Linux
/dev/sdf3        412     514     103     827347+  82  Linux swap / Solaris
/dev/sdf4        515    1043     529    4249192+   5  Extended

/dev/sdf5        515+    617     103-    827347   83  Linux
    -            618    1043     426    3421845    5  Extended
    -            515     514       0          0    0  Empty
    -            515     514       0          0    0  Empty

/dev/sdf6        618+   1043     426-   3421844+  83  Linux
    -            618     617       0          0    0  Empty
    -            618     617       0          0    0  Empty
    -            618     617       0          0    0  Empty

Puoi anche usare l'opzione -x quando crei nuove partizioni, nel qual caso sfdisk chiederà (o si aspetterà) dei descrittori di input per loro.

9. Visualizza la geometria del disco per il debug

Quando esegui il debug di eventuali problemi relativi alle tabelle delle partizioni, una delle cose che dovresti verificare è se le informazioni sulla tabella delle partizioni sono le stesse sul dispositivo come sono comprese dal kernel.

È una buona idea verificare che l'idea del kernel della geometria del dispositivo corrisponda alla geometria reale del dispositivo leggendo direttamente la tabella delle partizioni.

L'opzione -G (G maiuscola) visualizzerà la geometria reale del dispositivo leggendo direttamente la tabella delle partizioni come mostrato di seguito.

# sfdisk -G
/dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
/dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track

-g opzione (g minuscola) visualizzerà l'idea del kernel della geometria del dispositivo.

# sfdisk -g
/dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
/dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track

In questo esempio, entrambi gli output corrispondono come dovrebbero. Se questo non corrisponde, allora c'è qualche problema.

10. Visualizza tutti i tipi di partizione del disco

Per visualizzare tutti i tipi di partizione supportati che possono essere utilizzati durante la creazione di nuove partizioni utilizzando sfdisk, utilizzare l'opzione -T. T sta per tipo (cioè tipo di partizione).

Verrà visualizzato l'ID del tipo di partizione e il nome descrittivo. Durante la creazione della partizione, specificherai l'ID del tipo di partizione. Ad esempio, usa 82 come tipo per la partizione di scambio.

# sfdisk -T
Id  Name

 0  Empty
 1  FAT12
 2  XENIX root
 3  XENIX usr
 4  FAT16 <32M
 5  Extended
 6  FAT16
..
..
82  Linux swap / Solaris
83  Linux
84  OS/2 hidden C: drive
85  Linux extended
86  NTFS volume set
87  NTFS volume set
88  Linux plaintext
8e  Linux LVM
..
..

Per quanto riguarda lo spazio di scambio:2 modi per aggiungere spazio di scambio utilizzando dd, mkswap e swapon

11. Manipola solo una singola partizione del disco

È possibile utilizzare l'opzione -N per manipolare una particolare partizione del disco. -N sta per numero (cioè numero di partizione).

Puoi usarlo per creare una nuova partizione su un disco esistente che ha già altre partizioni.

Nell'esempio seguente, nel dispositivo sdf, abbiamo già una partizione. Ma vogliamo creare una seconda partizione.

# sfdisk /dev/sdf -N2
Checking that no-one is using this disk right now ...
OK

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Old situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    511     512-   4112639+  83  Linux
/dev/sdf2          0       -       0          0    0  Empty
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty
Input in the following format; absent fields get a default value.
<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
Usually you only need to specify <start> and <size> (and perhaps <type>).
/dev/sdf2 :512 1024
Warning: given size (1024) exceeds max allowable size (532)
/dev/sdf2 :512 532
/dev/sdf2        512    1043     532    4273290    0  Empty
New situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    511     512-   4112639+  83  Linux
/dev/sdf2        512    1043     532    4273290    0  Empty
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Do you want to write this to disk? [ynq] y
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)

In quanto sopra:

  • Abbiamo usato l'opzione -N2 per manipolare solo la seconda partizione.
  • Ciò significa che sfdisk ti chiederà le informazioni sulla partizione solo per sdf2 come mostrato sopra.
  • Questo non modificherà la partizione sdf1 esistente.
  • Inoltre, questo non ti chiederà informazioni su sdf3 e sdf4

12. Modalità di prova per la verifica

Prima di creare davvero una nuova partizione o modificare qualsiasi informazione sulle tabelle delle partizioni, assicurati che la sintassi del comando che hai sia buona.

In tal caso, è meglio usare l'opzione -n, che eseguirà davvero tutti i movimenti senza fare nulla.

-n opzione è un'opzione di prova, che eseguirà qualsiasi cosa il comando dovrebbe fare, ma non salverà nulla o cambierà nulla.

Ad esempio, quando si modifica un tipo di partizione, è possibile utilizzare l'opzione -n, che passerà attraverso il comando ma non cambierà nulla come mostrato di seguito.

# sfdisk -n --change-id /dev/sdf 1 82
sfdisk: -n flag was given: Nothing changed

Puoi anche usarlo quando crei nuove partizioni come mostrato di seguito. Questo passerà attraverso il comando e visualizzerà tutto nell'output, ma senza creare davvero nuove partizioni.

sfdisk -n /dev/sdf < sda.out

13. Contrassegna una partizione specifica come avviabile

Utilizzare l'opzione -A per contrassegnare una partizione specifica come partizione di avvio. -A sta per attivare.

L'esempio seguente sta attivando la 2a partizione (sdf2) come partizione attiva (cioè contrassegnando come avvio). Tieni presente che se qualsiasi altra partizione su questo dispositivo (sdf) è già contrassegnata per l'avvio, ora non sarà contrassegnata.

# sfdisk -A2 /dev/sdf
Done

Come si vede dal seguente output, viene attivato solo sdf2. Il "*" nella seconda colonna (cioè Boot) indica che questa è contrassegnata come partizione di avvio.

# sfdisk -l /dev/sdf

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    511     512-   4112639+  83  Linux
/dev/sdf2   *    512    1043     532    4273290    0  Empty
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty

14. Cambia tipo di partizione

Puoi cambiare il tipo di partizione di una partizione esistente.

Innanzitutto, utilizzare l'opzione –print-id per visualizzare il tipo di partizione di una partizione specifica. Il comando seguente visualizzerà il tipo di partizione di sdf1. Qui 83 nell'output indica che sdf1 è un tipo di partizione Linux.

# sfdisk --print-id  /dev/sdf 1
83

Il seguente output 0 indica che la partizione sdf2 è attualmente vuota.

# sfdisk --print-id  /dev/sdf 2
0

Ora usa l'opzione –change-id come mostrato di seguito per cambiare il tipo di partizione di un dispositivo di partizione.

In questo esempio, stiamo cambiando il tipo di partizione della partizione sdf2 in 83 (che è la partizione Linux)

# sfdisk --change-id /dev/sdf 2 83
Done

Come puoi vedere dal seguente output, ora sdf2 è impostato sul tipo di partizione Linux (.e Guarda l'ultima colonna "Sistema")

# sfdisk -l /dev/sdf

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    511     512-   4112639+  83  Linux
/dev/sdf2   *    512    1043     532    4273290   83  Linux
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty

15. Crea nuove partizioni dallo script della shell (metodo non interattivo)

Uno dei grandi vantaggi di sfdisk è che puoi creare partizioni al volo dalla riga di comando senza alcuna interazione da sfdisk.

Questo è molto utile quando vuoi automatizzare la creazione della partizione da uno script di shell.

Attualmente, come si vede dal seguente output, il dispositivo sdf è attualmente vuoto. Questo non ha partizioni.

# sfdisk -l /dev/sdf

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0       -       0          0    0  Empty
/dev/sdf2          0       -       0          0    0  Empty
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty

Ora, esegui il comando seguente, che creerà automaticamente tre partizioni (sdf1, sdf2, sdf3) utilizzando i valori forniti di seguito.

# sfdisk /dev/sdf <<EOF
0,512
,512
;
;
EOF

In quanto sopra:

  • Dovrebbero esserci 4 righe nell'input sopra per tutte e 4 le partizioni primarie.
  • La prima riga indica che dovrebbe iniziare dal 1° cilindro fino al 512 per creare la 1a partizione (cioè sdf1)
  • La seconda riga indica che dovrebbe iniziare dall'ultimo cilindro disponibile come primo cilindro e da lì utilizzare +512 cilindri per creare la 2a partizione (cioè sdf2)
  • La terza riga ha un punto e virgola, che indica che utilizzano i valori predefiniti e non richiedono nulla all'utente per la terza partizione. In questo caso, utilizzerà tutti i cilindri rimanenti sul disco e creerà la terza partizione (cioè sdf3)
  • La quarta riga ha un punto e virgola, che indica che utilizzano i valori predefiniti e non richiedono nulla all'utente per la quarta partizione. In questo caso, poiché non è rimasto spazio, non creerà nulla per la 4a partizione (cioè sdf4)

Quello che segue è l'output del comando sfdisk sopra. Tieni presente che questo non richiede alcun input da parte dell'utente.

Checking that no-one is using this disk right now ...
OK

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Old situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0       -       0          0    0  Empty
/dev/sdf2          0       -       0          0    0  Empty
/dev/sdf3          0       -       0          0    0  Empty
/dev/sdf4          0       -       0          0    0  Empty
New situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    511     512-   4112639+  83  Linux
/dev/sdf2        512    1023     512    4112640   83  Linux
/dev/sdf3       1024    1043      20     160650   83  Linux
/dev/sdf4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)

Verifica che le tre partizioni siano state create automaticamente utilizzando i valori forniti.

# sfdisk -l /dev/sdf

Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdf1          0+    511     512-   4112639+  83  Linux
/dev/sdf2        512    1023     512    4112640   83  Linux
/dev/sdf3       1024    1043      20     160650   83  Linux
/dev/sdf4          0       -       0          0    0  Empty

Linux
  1. Esempi di comandi rm in Linux

  2. ps Esempi di comandi in Linux

  3. w Esempi di comandi in Linux

  4. ac Esempi di comandi in Linux

  5. Esempi di comandi df in Linux

16 Esempi di comandi Echo in Linux

9 Esempi di comandi tee in Linux

Comando Fdisk in Linux (Crea partizioni del disco)

Linux du Command Esempi più utili

Esempi di comandi ip per gestire la rete in Linux

Esempi di comandi id in Linux