Partição Swap corrompida - Resolvido

Iniciado por Anderson_Coelho, 11 de Março de 2014, 13:07

tópico anterior - próximo tópico

Anderson_Coelho

Olá Pessoal

Tenho um notebook com HD de 160GB e Windows 7 e Ubuntu12.04. Ontem decidi instalar no meu HD externo de 1TB o Windows 7 e o Ubuntu 12.04 também para fazer alguns testes. Fiz a instalação dos dois SO's e os meus D's estão assim:

Código (sudo fdisk -l) Selecionar
Disco /dev/sda: 160.0 GB, 160041885696 bytes
255 cabeças, 63 setores/trilhas, 19457 cilindros, total de 312581808 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes
Identificador do disco: 0x6e8ba037

Dispositivo Boot      Início        Fim      Blocos   Id  Sistema
/dev/sda1   *        2048   141707113    70852533    7  HPFS/NTFS/exFAT
/dev/sda2       217352192   312580095    47613952    7  HPFS/NTFS/exFAT
/dev/sda3       141707262   217352191    37822465    5  Estendida
/dev/sda5       141707264   213180415    35736576   83  Linux
/dev/sda6       213182464   217352191     2084864   82  Linux swap / Solaris

Partições lógicas fora da ordem do disco

Disco /dev/sdb: 1000.2 GB, 1000204885504 bytes
255 cabeças, 63 setores/trilhas, 121601 cilindros, total de 1953525167 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes
Identificador do disco: 0x0001dcb9

Dispositivo Boot      Início        Fim      Blocos   Id  Sistema
/dev/sdb1   *        2048   140627047    70312500    7  HPFS/NTFS/exFAT
/dev/sdb2       671090688  1282435071   305672192    7  HPFS/NTFS/exFAT
/dev/sdb3      1282435072  1953523711   335544320    7  HPFS/NTFS/exFAT
/dev/sdb4       140627966   671090687   265231361    5  Estendida
/dev/sdb5       140627968   144627711     1999872   82  Linux swap / Solaris
/dev/sdb6       144629760   671090687   263230464   83  Linux

Partições lógicas fora da ordem do disco


O problema é que eu percebi que quando eu dou o boot para iniciar o Ubuntu pelo HD externo, ele inicia normalmente, mas parece que ele interfere na swap do Ubuntu do HD interno.

Depois quando vou ligar o notebook pelo HD interno, aparece uma mensagem durante a inicialização informando que a partição não está presente. O sistema inicia, mas não monta a swap.

Pensei que fosse só ajustar o /etc/fstab do sistema do HD externo, comentando algumas linhas e formatando a partição swap com problema e alterar a UUID no fstab do HD interno. Depois das minha modificações, eles ficaram assim:

Código (/etc/fstab 'HD interno') Selecionar
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc                                       /proc        proc  nodev,noexec,nosuid         0  0  
# / was on /dev/sda5 during installation
UUID=90a5c68b-212f-4131-8d25-100d45ebd21f  /            ext4  errors=remount-ro           0  1  
# swap was on /dev/sda6 during installation
UUID=b77cab35-8e3a-4608-9090-c9b75e951d3a  none         swap  sw                          0  0  
/dev/sda1                                  /media/sda1  ntfs  nls=iso8859-1,rw,umask=000  0  0  
/dev/sda2                                  /media/sda2  ntfs  nls=iso8859-1,rw,umask=000  0  0  


Código (/etc/fstab 'HD externo') Selecionar
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sdb6 during installation
UUID=ba9c5305-db1c-4b87-86e1-66ed2e335aa4 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
# UUID=d1411e99-7971-4dd7-ad91-10eff4b4ecdd none            swap    sw              0       0
# swap was on /dev/sdb5 during installation
UUID=e9d28225-5eaa-4dc1-a0e1-3bed3288e1ed none            swap    sw              0       0
# /dev/mapper/cryptswap1 none swap sw 0 0
# /dev/mapper/cryptswap2 none swap sw 0 0


Dessa forma, se eu fizer a alteração no /etc/fstab usando o Ubuntu pelo HD interno e reiniciar (também pelo HD interno) ocorre tudo normalmente. Porém, se eu ligar alguma vez pelo HD externo e depois voltar pelo interno, o problema volta.

A partição swap (sda6) aparece dessa forma no Gparted:



Alguém tem alguma ideia de como devo proceder?

Obrigado

rihoem

Olha, não sei como resolver esse problema especificamente. Nunca havia lido sobre problemas com partição swap compartilhada entre dois sistemas.

Você pode tentar evitar o uso da partição swap, e em vez dela criar um arquivo na raiz do sistema (do HD externo), e configurar o Ubuntu para usar esse arquivo como swap. Eu fiz isso por anos e nunca houve problema, até porque raramente o sistema usava a swap.

http://www.vivaolinux.com.br/dica/Usando-um-arquivo-como-memoria-SWAP

Anderson_Coelho

rihoem,

Obrigado pela resposta.

Nesse caso, eu poderia excluir as partições swap de cada HD e criar esse arquivo em cada um deles, certo?
Outra coisa, quando você diz que nunca teve problemas com esse procedimento, você sabe me dizer se o computador consegue hibernar normalmente?

rihoem

Você não precisa apagar a partição em si. O Ubuntu do computador continuará usando a swap normalmente. O que você vai fazer é configurar o ubuntu do HD externo para usar o arquivo (criado no próprio HD externo, na partição raiz do sistema) em vez da swap normal. Editando o arquivo fstab, basta deletar a linha que menciona a partição swap, e colocar no lugar a linha para montar o arquivo como swap, como diz no artigo do link que eu citei.

Quanto à hibernação, infelizmente há muitos relatos de problemas ao usar um arquivo para hibernar. Você pode fazer todo o procedimento, testar a hibernação e, se der problema, simplesmente apagar o arquivo e configurar o fstab para usar a swap novamente.

Porém, me ocorreu algo óbvio agora :P
Você está usando o Ubuntu no HD do próprio computador, e no HD externo, correto? Nesse caso, talvez fosse melhor simplesmente criar mais uma partição swap (acho que tanto faz o HD onde foi criada). Aí você configura um dos ubuntu para uma partição, e o outro ubuntu para outra partição swap. Desse jeito você evita interferência entre as instalações.

Anderson_Coelho

Citação de: rihoem online 11 de Março de 2014, 17:54
Porém, me ocorreu algo óbvio agora :P
Você está usando o Ubuntu no HD do próprio computador, e no HD externo, correto? Nesse caso, talvez fosse melhor simplesmente criar mais uma partição swap (acho que tanto faz o HD onde foi criada). Aí você configura um dos ubuntu para uma partição, e o outro ubuntu para outra partição swap. Desse jeito você evita interferência entre as instalações.

Eu não deixei claro no texto pois eu já tinha colocado a saída do comando fdisk no post, mas eu estou usando uma partição swap para cada HD. Ou você diz para eu montar uma terceira partição swap?

Durante a instalação do Ubuntu no HD externo, logicamente o HD interno estava conectado no PC. Parece que a instalação configurou as duas partições swap para uso do sistema do HD externo e inclusive o grub instalado também no HD externo reconhece todos os SO's (interno e externo).

A solução que me parecia óbvia seria alterar o fstab (externo) para usar apenas a swap correspondente. Fiz isso e, como tive que formatar a partição swap do HD interno, acertei a UUID no fstab (interno). Se eu fizer isso e reiniciar pelo HD interno, tudo ocorre normalmente (a swap monta beleza). Porém depois se eu iniciar o Ubuntu pelo HD externo e depois voltar pelo interno, a swap não é montada e quando eu abro o gparted ele fica como na figura que eu coloquei anteriormente.

Uma outra questão: essa questão de criar um arquivo para swap, tem um programa, se eu não me engano, que se chama zram, que já faz algo parecido não?


rihoem

Citação de: Anderson_Coelho online 11 de Março de 2014, 21:17
Citação de: rihoem online 11 de Março de 2014, 17:54
Porém, me ocorreu algo óbvio agora :P
Você está usando o Ubuntu no HD do próprio computador, e no HD externo, correto? Nesse caso, talvez fosse melhor simplesmente criar mais uma partição swap (acho que tanto faz o HD onde foi criada). Aí você configura um dos ubuntu para uma partição, e o outro ubuntu para outra partição swap. Desse jeito você evita interferência entre as instalações.

Eu não deixei claro no texto pois eu já tinha colocado a saída do comando fdisk no post, mas eu estou usando uma partição swap para cada HD. Ou você diz para eu montar uma terceira partição swap?

Durante a instalação do Ubuntu no HD externo, logicamente o HD interno estava conectado no PC. Parece que a instalação configurou as duas partições swap para uso do sistema do HD externo e inclusive o grub instalado também no HD externo reconhece todos os SO's (interno e externo).

A solução que me parecia óbvia seria alterar o fstab (externo) para usar apenas a swap correspondente. Fiz isso e, como tive que formatar a partição swap do HD interno, acertei a UUID no fstab (interno). Se eu fizer isso e reiniciar pelo HD interno, tudo ocorre normalmente (a swap monta beleza). Porém depois se eu iniciar o Ubuntu pelo HD externo e depois voltar pelo interno, a swap não é montada e quando eu abro o gparted ele fica como na figura que eu coloquei anteriormente.

Uma outra questão: essa questão de criar um arquivo para swap, tem um programa, se eu não me engano, que se chama zram, que já faz algo parecido não?



Desculpe, eu que não entendi direito :P
É que você usa partições estendidas, né? Nunca entendi direito essa bruxaria :P

Mas é estranho que esteja ocorrendo problema na swap por causa do ubuntu externo. Ele chega a montar a partição swap no hd interno quando você o utiliza? Se você configurou cada fstab para usar uma das swaps, o sistema nem deveria estar mexendo nas outras.... Se conseguir, veja o que o comando "free -m" reporta no terminal (é para mostrar apenas uma swap em uso). E tente confirmar se o ubuntu externo realmente está usando a partição do hd externo.

Quanto ao arquivo swap, acho que não tem a ver com o zram. Se não estou enganado, o zram age à parte, criando um arquivo compactado na memória ram. Por isso não é a mesma coisa, pois uma swap só faz sentido quando está numa outra memória, para poder desafogar a memória RAM :P Em outras palavras, mesmo tendo o zram instalado, você precisaria de uma partição ou arquivo (no disco) servindo como swap.

Anderson_Coelho

Citação de: rihoem online 11 de Março de 2014, 22:36
Desculpe, eu que não entendi direito :P
É que você usa partições estendidas, né? Nunca entendi direito essa bruxaria :P
Não esquenta, é eu que deveria ter deixado mais claro. ;D

Parece que quando fui instalar o Ubuntu no HD externo ele queria "pegar" a swap do HD interno também. Então foi aí que mexi no fstab do Ubuntu externo, mas não estava resolvendo. Aí eu achei em outro fórum uma dúvida semelhante à minha:

http://www.hardware.com.br/comunidade/montanda-swap/1263368/

A solução então foi alterar o arquivo /etc/crypttab do HD externo. Eu simplesmente comentei a primeira linha:

Código (/etc/cryptab) Selecionar
#cryptswap1 /dev/sda6 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
cryptswap2 /dev/sdb5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256


No meu entendimento de leigo, acho que durante a inicialização esse arquivo era carregado e por algum motivo ocorria algum problema na swap do HD interno e o sistema não reconhecia mais essa partição como swap.

Muito obrigado pela ajuda.


zekkerj

Pelo que eu entendi, essa opção de "cryptswap" está apontando para o nome do dispositivo, e não para o seu UUID. O problema em fazer isso é que o nome pode mudar, conforme você der boot com o hd interno ou externo. Por isso não se usa mais o nome do dispositivo no fstab, pq até um pendrive esquecido durante o boot pode causar esse efeito.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D