English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

管理磁盘Linux

Linux磁盘管理的好坏直接关系到整个系统的性能问题。

Linux磁盘管理常用三个命令为df、du和fdisk。

  • df:列出文件系统的整体磁盘使用量

  • du:检查磁盘空间使用量

  • fdisk:用于磁盘分区

df

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

Sintassi:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的/proc等文件系统

  • -k :以KBytes的容量显示各文件系统

  • -m :以MBytes的容量显示各文件系统

  • -h :以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示

  • -H :以M=1000K代替M=1024K的进位方式

  • -T :显示文件系统类型,包括该partition的filesystem名称(例如ext3)

  • -i :不使用硬盘容量,而以inode的数量来显示

示例 1

列出系统内的所有文件系统

[root@www ~]# df
Filesystem                 1K-blocks                 Used         Available         Use%         Mounted on
/dev/hdc2                                         9920624         3823112         5585444         41% /
/dev/hdc3                                         4956316         141376         4559108         4% /home
/dev/hdc1                                         101086                 11126                 84741         12% /boot
tmpfs                                             371332                             0         371332         0% /dev/shm

在Linux下,如果没有为df添加任何选项,那么默认会列出系统内的所有 (不包含特殊内存中的文件系统和swap)都以1 Kbytes的容量列出!

Esempio 2

显示容量结果为易于阅读的容量格式

[root@www ~]# df -h
Filesystem                                         Size         Used         Avail         Use%         Mounted on
/dev/hdc2                                         9.5G         3.7G         5.4G         41% /
/dev/hdc3                                         4.8G         139M         4.4G         4% /home
/dev/hdc1                                         99M         11M         83M         12% /boot
tmpfs                                                 363M                 0                 363M           0%                 /dev/shm

Esempio 3

Elenca tutti i formati speciali di file e i nomi nel sistema

[root@www ~]# df -aT
Filesystem                                           Type             1K-blocks         Used         Available         Use%         Mounted on
/dev/hdc2                                         ext3             9920624         3823112                 5585444           41%                 /
proc                                               proc             0                 0                         0                   -                   /proc
sysfs                                               sysfs             0                 0                         0                   -                   /sys
devpts                                               devpts             0                 0                         0                   -                   /dev/pts
/dev/hdc3                                         ext3             4956316         141376                 4559108           4%                 /home
/dev/hdc1                                         ext3             101086         11126                 84741           12%                 /boot
tmpfs                                               tmpfs             371332                 0                 371332           0%                 /dev/shm
none                                               binfmt_misc         0                 0                         0                   -                   /proc/sys/fs/binfmt_misc
sunrpc                                             rpc_pipefs         0                 0                         0                   -                   /var/lib/nfs/rpc_pipefs

Esempio 4

Visualizza la capacità di spazio disponibile sotto /etc in un formato di capacità leggibile

[root@www ~]# df -h /etc
Filesystem                                         Size         Used         Avail         Use%         Mounted on
/dev/hdc2                                         9.5G         3.7G         5.4G         41% /

du

Il comando Linux du è anche usato per visualizzare lo spazio utilizzato, ma a differenza del comando df, il comando Linux du visualizza lo spazio utilizzato dai file e dalle directory, quindi ha alcune differenze rispetto al comando df. Ecco una guida al comando Linux du.

Sintassi:

du [-ahskm] nome_file_o_directory

选项与参数:

  • -a  :Elenca la capacità di tutti i file e le directory, poiché il valore predefinito conta solo la capacità dei file nella directory.

  • -h  :Mostra la capacità in un formato di facile lettura (G/M);

  • -s  :Mostra solo il totale, senza elencare la capacità di ciascuna directory individuale;

  • -S  :Escludi il totale delle sottodirectory, diverso da -s.

  • -k  :Mostra la capacità in KBytes;

  • -m  :Mostra la capacità in MBytes;

示例 1

Elenca solo la capacità di tutte le directory nella directory corrente (inclusi i file nascosti):

[root@www ~]# du
8       ./test4     <==Ogni directory viene elencata
8       ./test2
....saltati.....
12      ./.gconfd   <==Inclusa la directory con file nascosti
220     .           <==Questa directory (.) utilizza la capacità complessiva

Inserendo du senza opzioni, du analizzerà lo spazio di disco utilizzato dai file e le directory nella directory corrente.

Esempio 2

Elenca anche la capacità dei file

[root@www ~]# du -a
12      ./install.log.syslog   <==Ecco la lista dei file
8       ./.bash_logout
8       ./test4
8       ./test2
....saltati.....
12      ./.gconfd
220     .

Esempio 3

Controlla la capacità utilizzata da ogni directory sotto la directory radice

[root@www ~]# du -sm /*
7       /bin
6       /boot
.....saltati.....
0       /proc
.....saltati.....
1       /tmp
3859    /usr     <==Il più grande durante l'inizializzazione del sistema è proprio lui!
77      /var

Il carattere jolly * rappresenta ogni directory.

A differenza di df, il comando du di fatto ricerca direttamente all'interno del file system tutti i dati dei file.

fdisk

fdisk è uno strumento di gestione delle tabelle di partizione dei dischi di Linux.

Sintassi:

fdisk [-l] nome_dispositivo

选项与参数:

  • -l  :Mostra tutte le partizioni del dispositivo specificato. Se si utilizza solo fdisk -l      Il sistema elencherà tutte le partizioni dei dispositivi che può trovare in tutto il sistema.

示例 1

Elenca tutte le informazioni sulle partizioni

[root@AY120919111755c246621 tmp]# fdisk -l
Disco /dev/xvda: 21.5 GB, 21474836480 bytes
255 teste, 63 settori/traccia, 2610 cilindri
Unità = cilindri di 16065 * 512 = 8225280 bytes
Dimensione settore (logica/fisica): 512 bytes / 512 bytes
Dimensione I/O (minima/ottimale): 512 bytes / 512 bytes
Identificatore disco: 0x00000000
    Dispositivo	Boot	Inizio	Fine	Blocchi	Id	Sistema
/dev/xvda1           *                                               1                 2550         20480000     83  Linux
/dev/xvda2                                                           2550             2611             490496     82  Linux swap / Solaris
Disco /dev/xvdb: 21.5 GB, 21474836480 bytes
255 teste, 63 settori/traccia, 2610 cilindri
Unità = cilindri di 16065 * 512 = 8225280 bytes
Dimensione settore (logica/fisica): 512 bytes / 512 bytes
Dimensione I/O (minima/ottimale): 512 bytes / 512 bytes
Identificatore disco: 0x56f40944
    Dispositivo	Boot	Inizio	Fine	Blocchi	Id	Sistema
/dev/xvdb2                                                           1                 2610         20964793+  83  Linux

Esempio 2

Trova il disco in cui si trova la radice del tuo sistema e consulta le informazioni presenti su quell'hard disk

[root@www ~]# df / <== Attenzione: l'importante è trovare il nome del disco
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc2                                                             9920624         3823168         5585388  41%  
[root@www ~]# fdisk /dev/hdc <== Presta attenzione, non aggiungere numeri!
Il numero di cilindri per questo disco è impostato a 5005.
Non c'è nulla di sbagliato in questo, ma è più grande di 1024,
e potrebbe causare problemi in alcune configurazioni con:
1) software che si avvia durante il boot (ad esempio, versioni obsolete di LILO)
2) Software di avvio e partizione da altri sistemi operativi
   (ad esempio, DOS FDISK, OS/2 FDISK)
Commando (m per aiuto): <== In attesa del tuo input!

Dopo aver inserito m, vedrai queste descrizioni dei comandi

Commando (m per aiuto): m <== Dopo aver inserito m, vedrai queste descrizioni dei comandi
Commando azione
   a <== Commuta il flag di avvio
   b <== Modifica l'etichetta disco BSD
   c <== Commuta il flag di compatibilità DOS
   d <== Elimina una partizione <== Questo aziona l'eliminazione di una partizione
   l <== Elenco dei tipi di partizione conosciuti
   m <== Stampa questo menu
   n <== Aggiungi una nuova partizione <== Questo aziona l'aggiunta di una nuova partizione
   o <== Crea una nuova tabella di partizione DOS vuota
   p <== Stampa la tabella di partizione <== Questo aziona la visualizzazione della tabella di partizione sullo schermo
   q <== Esci senza salvare le modifiche <== Questo aziona l'uscita dal programma fdisk senza salvare le modifiche
   s <== Crea una nuova etichetta disco Sun vuota
   t <== Cambia l'ID di sistema di una partizione
   u <== Cambia le unità di visualizzazione/inserimento
   v <== Verifica la tabella di partizione
   w <== Scrivi la tabella di partizione sul disco e esci <== Questo aziona la scrittura delle modifiche nella tabella di partizione
   x <== Funzionalità extra (solo per esperti)

Premi q per uscire da fdisk senza salvare le modifiche! Al contrario, premi w per applicare le modifiche.

Commando (m per aiuto): p <== Ecco come visualizzare lo stato attuale del disco
Disk /dev/hdc: 41.1 GB, 41174138880 bytes <== 这个磁盘的文件名与容量
255 teste, 63 settori/tracto, 5005 cilindri <== dimensione delle teste, settori e cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte <== dimensione di ogni cilindro
   Dispositivo	Boot	Inizio	Fine	Blocchi	Id	Sistema
/dev/hdc1	*			1			13		104391		83	Linux
/dev/hdc2				14			1288		10241437+		83	Linux
/dev/hdc3				1289			1925		5116702+		83	Linux
/dev/hdc4				1926			5005		24740100		5	Estesa
/dev/hdc5				1926			2052		1020096		82	Linux swap	/ 	Solaris
# nome del dispositivo	partizione di avvio	inizio del cilindro	fine del cilindro	capacità in 1K	slot di partizione del disco
Commando (m per aiuto): q

Vuoi uscire senza salvare? Premi q! Non premere mai w a caso!

Utilizzando p è possibile elencare le informazioni sulla tabella di partizione del disco attuale, la parte superiore di queste informazioni mostra lo stato complessivo del disco.

Formattazione del disco

Dopo la divisione del disco, naturalmente, è necessario procedere con la formattazione del file system, il comando di formattazione è molto semplice, utilizzare il comando mkfs (make filesystem).

Sintassi:

mkfs [-t formato del file system] nome del dispositivo

选项与参数:

  • -t  :può accettare il formato del file system, ad esempio ext3, ext2, vfat ecc. (ha effetto solo se il sistema lo supporta)

示例 1

Visualizzare i formati di file supportati da mkfs

[root@www ~]# mkfs[tab][tab]
mkfs				mkfs.cramfs		mkfs.ext2		mkfs.ext3		mkfs.msdos		mkfs.vfat

Premere due [tab], vedrete che il formato di file supportato da mkfs è come mostrato sopra.

Esempio 2

Formattare la partizione /dev/hdc6 (puoi specificare la tua partizione) come file system ext3:

[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29 Maggio 2006)
Etichetta del file system= <== qui si riferisce al nome del settore di partizione (label)
Tipo di OS: Linux
Dimensione del blocco=4096 (log=2) <== la dimensione del blocco è configurata a 4K 
Dimensione del frammento=4096 (log=2)
251392 inode, 502023 blocchi <== numero di inode/block determinato da questa configurazione
25101 blocchi (5.00%) riservati per l'utente super
Primo blocco dati=0
Massimo numero di blocchi del file system=515899392
16 gruppi di blocchi
32768 blocchi per gruppo, 32768 frammenti per gruppo
15712 inode per gruppo
Backup dei superblock archiviati nei blocchi:
        32768, 98304, 163840, 229376, 294912
Scrittura delle tabelle inode: completato
Creazione del journal (8192 blocchi): completato <== con registrazione dei log
Scrittura dei superblock e delle informazioni di accounting del file system: completato
Questo file system verrà controllato automaticamente ogni 34 mount o
180 giorni, il primo che si verifica. Utilizzare tune2fs -c o -i per sovrascrivere.
# Questo crea il file system Ext3 necessario! Semplice e chiaro!

Verifica del disco

fsck (file system check) viene utilizzato per controllare e mantenere il file system non consistente.

Se il sistema si spegne o si verifica un problema con il disco, è possibile utilizzare il comando fsck per controllare il file system.

Sintassi:

fsck [-t sistema di file] [-ACay] nome dispositivo

选项与参数:

  • -t: Specifica il tipo di sistema di file, se è già definito in /etc/fstab o supportato dal kernel non è necessario aggiungere questo parametro

  • -s: Esegue l'ordine fsck uno per uno

  • -A: Verifica tutte le partizioni elencate in /etc/fstab

  • -C: Visualizza il progresso completo della verifica

  • -d: Stampa i risultati di debug di e2fsck

  • -p: Se sono presenti condizioni -A, si eseguono insieme più verifiche fsck

  • -R: Se sono presenti condizioni -A, si omette / non si verifica

  • -V: Modalità di visualizzazione dettagliata

  • -a: Se la verifica ha degli errori, viene riparato automaticamente

  • -r: Se la verifica ha degli errori, l'utente risponde se riparare

  • -y: L'opzione specifica che per ogni file viene automaticamente inserito yes, quando non si è sicuri di quali non siano normali, si può eseguire # fsck -y per verificare e riparare tutto.

示例 1

Visualizzare quanti file system il comando fsck supporta nel sistema:

[root@www ~]# fsck[tab][tab]
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat

Esempio 2

Verifica forzata della partizione /dev/hdc6:

[root@www ~]# fsck -C -f -t ext3 /dev/hdc6 
fsck 1.39 (29 maggio 2006)
e2fsck 1.39 (29 maggio 2006)
Passaggio 1: Verifica degli inodes, dei blocchi e delle dimensioni
Passaggio 2: Verifica della struttura dei directory
Passaggio 3: Verifica della connettività dei directory
Passaggio 4: Verifica dei conti di riferimento
Passaggio 5: Verifica delle informazioni di riepilogo del gruppo
vbird_logical: 11/251968 file (9.1% non contigui), 36926/1004046 blocchi

Se non è stato aggiunto l'opzione -f, la verifica del file system è molto veloce poiché non ha mai avuto problemi! Se si aggiunge -f per verificare forzatamente, il processo viene visualizzato passo per passo.

挂载与卸除磁盘

Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。

语法命令挂载磁盘:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n]  装置文件名  挂载点

示例 1

用默认的方式,将刚刚创建的 /dev/hdc6 挂载到 /mnt/hdc6 上面!

[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
.....中间省略.....
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

语法命令卸载磁盘 umount:

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;

  • -n :不升级 /etc/mtab 情况下卸除。

卸下/dev/hdc6

[root@www ~]# umount /dev/hdc6