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

Gerenciamento de Disco no Linux

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

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

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

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

  • fdisk:用于磁盘分区

df

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

Sintaxe:

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

Opções e Parâmetros:

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

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

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

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

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

  • -T  :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

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

Exemplo 1

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

[root@www ~]# df
Sistema de Arquivos      1K-blocks Used Available Use% Montado em
/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 的容量来列出来!

Exemplo 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  363M /dev/shm

Exemplo 3

列出系统内的所有特殊文件格式及名称

[root@www ~]# df -aT
Filesystem 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

Exemplo 4

将 /etc 底下的可用的磁盘容量以易读的容量格式显示

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

du

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

Sintaxe:

du [-ahskm] 文件或目录名称

Opções e Parâmetros:

  • -a  :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

  • -h  :以人们较易读的容量格式 (G/M) 显示;

  • -s  :列出总量而已,而不列出每个各别的目录占用容量;

  • -S  :不包括子目录下的总计,与 -s 有点差别。

  • -k  :以 KBytes 列出容量显示;

  • -m  :以 MBytes 列出容量显示;

Exemplo 1

只列出当前目录下的所有文件夹容量(包括隐藏文件夹):

[root@www ~]# du
8       ./test4     <==每个目录都会列出来
8       ./test2
....中间省略....
12      ./.gconfd   <==包括隐藏文件的目录
220     .           <==这个目录(.)所占用的总量

直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。

Exemplo 2

将文件的容量也列出来

[root@www ~]# du -a
12      ./install.log.syslog   <==有文件的列表了
8       ./.bash_logout
8       ./test4
8       ./test2
....中间省略....
12      ./.gconfd
220     .

Exemplo 3

Verifique o espaço ocupado por cada diretório sob o diretório raiz

[root@www ~]# du -sm /*
7       /bin
6       /boot
..... omitindo parte do meio....
0       /proc
..... omitindo parte do meio....
1       /tmp
3859    /usr <== No início do sistema, o maior é ele!
77      /var

Caracteres de expansão * para representar cada diretório.

Diferente do df, o du realmente busca todos os dados de arquivos no sistema de arquivos.

fdisk

O fdisk é uma ferramenta de operação da tabela de partição de disco do Linux.

Sintaxe:

fdisk [-l] Nome do dispositivo

Opções e Parâmetros:

  • -l : Exibe o conteúdo de todas as partições do dispositivo especificado. Se você usar apenas fdisk -Quando você usa o comando l:      O sistema listará todas as partições de dispositivos que puder encontrar no sistema.

Exemplo 1

Listar todas as informações de partições

[root@AY120919111755c246621 tmp]# fdisk -l
Disco /dev/xvda: 21.5 GB, 21474836480 bytes
255 cabeças, 63 setores/trilha, 2610 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
I/Tamanho O (mínimo/ótimo): 512 bytes / 512 bytes
Identificador do disco: 0x00000000
    Dispositivo de Boot  Início  Fim  Blocos  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 cabeças, 63 setores/trilha, 2610 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
I/Tamanho O (mínimo/ótimo): 512 bytes / 512 bytes
Identificador do disco: 0x56f40944
    Dispositivo de Boot  Início  Fim  Blocos  Id  Sistema
/dev/xvdb2               1        2610    20964793+  83  Linux

Exemplo 2

Encontre o disco onde o diretório raiz está localizado e consulte as informações no disco

[root@www ~]# df /            <== Atenção: a coisa importante é encontrar o nome do disco
Sistema de Arquivos           1K-blocks Used Available Use% Montado em
/dev/hdc2              9920624   3823168   5585388  41% /
[root@www ~]# fdisk /dev/hdc <== Preste atenção, não adicione números!
O número de cilindros para este disco é configurado para 5005.
Não há nada de errado com isso, mas isso é maior do que 1024,
e poderia em certas configurações causar problemas com:
1) software que roda no tempo de boot (por exemplo, versões antigas do LILO)
2) software para boot e partição de outros SOs
   (por exemplo, DOS FDISK, OS/2 FDISK)
Command (m for help): <== Aguarde sua entrada!

输入 m 后,就会看到底下这些命令介绍

Command (m for help): m <== 输入 m 后,就会看到底下这些命令介绍
Comando ação
   a  alternar um sinal de inicialização
   b  editar rótulo de disco BSD
   c  alternar o sinal de compatibilidade DOS
   d  excluir uma partição  <== Excluir uma partição
   l  listar tipos de partição conhecidos
   m  imprimir este menu
   n  adicionar uma nova partição  <== Adicionar uma nova partição
   o  criar uma nova tabela de partição DOS vazia
   p  imprimir a tabela de partição  <== Exibir a tabela de partição na tela
   q  sair sem salvar as mudanças  <== Sair do fdisk sem salvar as mudanças
   s  criar um novo rótulo de disco Sun vazio
   t  alterar o id do sistema de uma partição
   u  alterar a exibição/unidades de entrada
   v  verificar a tabela de partição
   w  escrever a tabela de partição no disco e sair  <== Escrever as ações recentes na tabela de partição
   x  funcionalidades extras (apenas para especialistas)

Pressione q ao sair do fdisk para que todas as ações não sejam aplicadas! Pelo contrário, pressione w para que as ações sejam aplicadas.

Comando (m para ajuda): p  <== Aqui pode ser exibido o estado atual do disco
Disco /dev/hdc: 41.1 GB, 41174138880 bytes  <== Nome e capacidade do disco
255 cabeças, 63 setores/trilha, 5005 cilindros  <== Tamanho do cabeçote, setores e cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes  <== Tamanho de cada cilindro
   Dispositivo de Boot  Início  Fim  Blocos  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  Extended
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris
# Nome do arquivo de dispositivo  Sim/Não  Início do cilindro  Fim do cilindro  1K大小容量 磁盘分区槽内的系统
Command (m for help): q

想要不储存离开吗?按下 q 就对了!不要随便按 w 啊!

使用 p 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。

磁盘格式化

磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令。

Sintaxe:

mkfs [-t 文件系统格式] 装置文件名

Opções e Parâmetros:

  • -t  :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

Exemplo 1

查看 mkfs 支持的文件格式

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

按下两个[tab],会发现 mkfs 支持的文件格式如上所示。

Exemplo 2

将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:

[root@www ~]# mkfs -texto3 /dev/hdc6
mke2fs 1.39 (29-Maio-2006)
Filesystem label=                <==这里指的是分割槽的名称(label)
Tipo de SO: Linux
Tamanho do bloco=4096 (log=2) <== o tamanho do bloco configurado é 4K 
Tamanho do fragmento=4096 (log=2)
251392 inodes, 502023 blocos <== determinado por esta configuração de inode/número de blocos
25101 blocos (5(00%) reservado para o superusuário
Primeiro bloco de dados=0
Máximo de blocos do sistema de arquivos=515899392
16 grupos de blocos
32768 blocos por grupo, 32768 fragmentos por grupo
15712 inodes por grupo
Cópias de segurança do superbloco armazenadas em blocos:
        32768, 98304, 163840, 229376, 294912
Escrevendo tabelas de inode: concluído
Criando diário (8192 bloco): concluído <== com registro de log
Escrevendo superbloco e informações de contabilidade do sistema de arquivos: concluído
Este sistema de arquivos será verificado automaticamente a cada 34 mounts ou
180 dias, o que vier primeiro. Use tune2fs -c ou -i para anular.
# Isso cria o que precisamos do Ext3 Sistema de arquivos! Simples e claro!

Inspeção de disco

fsck (verificação do sistema de arquivos) é usado para verificar e manter sistemas de arquivos inconsistentes.

Se o sistema falhar ou o disco ocorrer um problema, você pode usar o comando fsck para verificar o sistema de arquivos.

Sintaxe:

fsck [-t Sistema de arquivos] [-ACay] Nome do dispositivo

Opções e Parâmetros:

  • -t : Determinar o tipo de sistema de arquivos especificado, se não /etc/Se já estiver definido no fstab ou se o kernel já suportar, não é necessário adicionar este parâmetro

  • -s : Executar seqüencialmente cada comando fsck para verificar

  • -A : Para/etc/Verificar todas as partições listadas no fstab

  • -C : Exibir o progresso completo da verificação

  • -d : Imprimir e2resultados de debug do fsck

  • -p : Com -A Condição, execute várias verificações fsck ao mesmo tempo

  • -R : Com -A Opcional, omitir / Não verificar

  • -V : Modo de exibição detalhado

  • -a : Se a verificação tiver erros, será corrigida automaticamente

  • -r : Se a verificação tiver erros, o usuário responderá se deve ser corrigido

  • -y : A opção especifica que cada arquivo seja automaticamente inserido yes, em caso de incerteza sobre o que não está normal, pode executar # fsck -y Verificar e corrigir tudo.

Exemplo 1

Verifique quantos sistemas de arquivos são suportados pelo comando fsck:

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

Exemplo 2

Verificação forçada /dev/hdc6 Partição:

[root@www ~]# fsck -C -f -texto3 /dev/hdc6 
fsck 1.39 (29-Maio-2006)
e2fsck 1.39 (29-Maio-2006)
Passou 1Verificando inodes, blocos e tamanhos
Passou 2Verificando estrutura do diretório
Passou 3Verificando conectividade do diretório
Passou 4Verificando contagens de referência
Passou 5Verificando informações resumidas do grupo
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

Se não adicionado -Se não for adicionado o opção f, devido a esse sistema de arquivos nunca ter tido problemas, o processo de verificação é muito rápido! Se adicionado -f Verificação forçada, exibirá um a um o processo.

Montagem e Desmontagem de Disco

O montagem de disco no Linux usa o comando mount, e o desmontagem usa o comando umount.

Sintaxe de montagem de disco no Linux:

mount [-t Sistema de arquivos] [-L Nome da etiqueta] [-o Opções adicionais] [-n] Nome do dispositivo montado Ponto de montagem

Exemplo 1

Usando o modo padrão, monte o que acabou de ser criado /dev/hdc6 Montar em /mnt/hdc6 Acima!

[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Sistema de Arquivos           1K-blocks Used Available Use% Montado em
.....omissos.....
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

Sintaxe do comando de desmontagem de disco umount:

umount [-fn] Nome do arquivo de dispositivo ou ponto de montagem

Opções e Parâmetros:

  • -f : desmontar forçadamente! Pode ser usado em situações semelhantes ao sistema de arquivos de rede (NFS) que não podem ser lidos;

  • -n : não atualizar /etc/desmontar sob a situação do mtab.

Desmontar/dev/hdc6

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