Sistema não montando partição de troca


12

Mesmo que a partição swap exista e fstabesteja configurada para carregar , ela ainda não está sendo montada.

fdisk retorna isso para a partição swap:

file system: /dev/sda5
      start: 1
        end: 244
     blocks: 1951744
         id: 82
     system: Linux swap / Solaris

e no meu fstabdiz

file system: /dev/sda5
mount point: none
       type: swap
    options: sw
       dump: 0
       pass: 0

e posso carregá-lo bem, swapon /dev/sda5mas ele simplesmente não carrega na inicialização.

Há mais informações que posso fornecer para ajudar na solução de problemas? Não sei que outras informações poderiam ser úteis


Conforme solicitado, fstabarquivo completo :

# <file system> <mount point>   <type>  <options>            <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid  0       0
/dev/sda6       /               ext4    errors=remount-ro    0       1
/dev/sda5       none            swap    sw                   0       0
/dev/sr1        none            udf     rw,noauto            0       0

Eu estava olhando o log do sistema e vi isso, sem saber o que significa ou se é normal, mas:

Apr 29 17:57:24 caelan-ubuntu os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/sda5
Apr 29 17:57:24 caelan-ubuntu 50mounted-tests: debug: /dev/sda5 is a swap partition; skipping

saída de mountall

mountall: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
mountall: Connection is closed

saída de mountall -v

http://pastie.org/private/ras9mc7mf66yudnjoem4w

swap finished
...
local 4/4 remote 0/0 virtual 12/12 swap 0/0

não tenho certeza, ainda não estou carregando swap ... ainda pode ser adicionado na linha de comando, e minha partição do windows está sendo montada na inicialização, e isso também está no fstab.


Você se importaria de publicar o conteúdo do / etc / fstab?
boehj

@boehj: done ...
caesay

Felicidades. Nada está saltando para mim aqui. Parece estranho. A única coisa possível em que consigo pensar é que, visto que você está usando partições estendidas, / deve aparecer primeiro, ou seja, / dev / sda5 e trocar como / dev / sda6. No entanto, isso é apenas agarrar no ar. Estou interessado em ver como este será resolvido. Talvez você possa usar UUIDs no lugar de / dev / sdX? Para encontrar esses valores, faça sudo blkid.
boehj

@ boehj: sem dados ... ainda não está sendo carregado.
caesay

@ Tommy - Desculpe, eu não pude ajudá-lo amigo. Estou certo de que alguém aqui será capaz de fazê-lo. Boa sorte com isso. :)
boehj

Respostas:


8

Isso vai parecer estúpido, mas tente: reordene /etc/fstabpara colocar a partição swap por último.

Parece que mountall -vfalha de maneira inofensiva quando executado como usuário não raiz, e sua saída pode ser usada para diagnosticar por que o mountall não funciona direito na inicialização. Sua última linha de saída mountall -vinclui a pista crítica:

local 4/4 remote 0/0 virtual 12/12 swap 0/0

Em outras palavras, 0 unidades de troca montadas, 0 unidades de troca encontradas em / etc / fstab.

Agora, por que mountall não encontrou sua unidade de swap listada em / etc / fstab? Boa pergunta. Provavelmente deve ser um bug contra mountall. Para diagnosticá-lo, copiei o seu / etc / fstab e executei mountall -vcomo usuário não root. Editando o / etc / fstab aleatoriamente e continuando a testar mountall -v, descobri como alterar o "swap 0/0" reportado pelo mountall. Apenas reordenar as linhas do / etc / fstab foi suficiente para mudar para "swap 0/1", ou seja, 1 unidade de troca encontrada no / etc / fstab. Com isso, pode ser o suficiente para inicializar corretamente. Caso contrário, publique um novo resultado de mountall -v.



8

Obrigado por sua pergunta. Enquanto eu olhava para ele, descobri que meu sistema tinha o mesmo problema que o seu depois de atualizar para o Natty ontem. Acredito que o problema é que o UUID da partição swap mudou durante a atualização. Aqui está como eu consertei isso.

  1. Corra sudo blkid. Isso mostrará os UUIDs atuais de todas as partições no disco. Eu suspeito que você verá que o UUID da sua partição de swap agora difere do valor em / etc / fstab.

  2. Se for diferente, execute algum editor de texto no sudo para editar / etc / fstab. Substitua o valor do UUID pelo valor atual atual, conforme mostrado pelo blkidcomando acima. Não inclua aspas.

  3. Salve o arquivo e reinicie o seu sistema. Execute free -mpara garantir que a alteração tenha corrigido o problema:

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:          1001        604        396          0        123        199
    -/+ buffers/cache:        281        719
    Swap:         1953          0       1953
    

Eu não estava usando o UUID, estava usando o / dev / sda5, como mencionei na minha pergunta. isso não me afetaria?
caesay

Está bem. Então, seu / etc / fstab também não usa UUIDs?
Tim

Não, não funciona. com ou sem uuid's
caesay

1
Trabalhou como charme!
ShuaibKunji 15/10

1

Meu /etc/fstab(Debian) tem o seguinte conteúdo:

UUID=7b533ab9-cb87-4a30-a4d8-689788f21985 none  swap sw 0 0

O seu deve ter essa linha com base no que você nos contou sobre sua configuração:

/dev/sda5 none swap sw 0 0

Eu me pergunto por que, como iniciante no Linux, você está se perguntando sobre isso. A RAM é barata hoje em dia. Tenho 4 GB e desenvolvo Java (o IntelliJ usa especialmente uma tonelada de RAM, por exemplo), mas nunca acabo com isso.

E tenho que dizer que estou surpreso que você tenha esse tipo de problema. Você não executou o Ubuntu Installer usando as opções padrão?

Ou talvez você esteja tendo todos esses problemas por causa da inicialização dupla (Win / Lin)?


ele tem essa linha, eu não tenho muita memória RAM, e eu estou com inicialização dupla, mas não deve ser um problema, porque o meu Windows não toca na minha partição de swap e posso carregá-la com o swapon.
caesay

1

Não tenho uma resposta rápida, mas procurei e encontrei algumas coisas que você poderia verificar para tentar diminuir o problema:

  • O arquivo / etc / fstab (5) deve listar a partição swap (a sua parece bem em conflito)
  • /etc/init/mountall.conf deve incluir a linha emits all-swaps
  • se você executar mountallcomo usuário não root, sua resposta deve incluirswapon: /dev/sda5: open failed: Permission denied
  • dmesg | less deve incluir algo como o que o meu possui:

[2.272092] sda: sda1 sda2 sda3

[2.272924] sd 1: 0: 0: 0: [sda] Disco SCSI conectado

... (mais linhas sobre montagem sda1, sda2) ...

[20.298550] Adicionando 10239996k de swap em / dev / sda3. Prioridade: -1 extensões: 1 em: 10239996k

  • free deve relatar algo como Swap: 10239996 0 10239996

Não consigo encontrar nenhuma saída no dmesg sobre as unidades .. mountall retorna um erro e o mountall.conf tem essa linha.
caesay

Se mountall nunca tentou executar o swapon, esse parece ser o seu problema. Qual é a saída detalhada mountall -v?
Krubo

adicionou à pergunta @krubo
caesay

veja onde mountall -vdiz swap 0/0? Essa é uma pista perfeita. Veja minha nova resposta.
Krubo

1

Eu tive um problema semelhante no Ubuntu 12.04 (Precise), mas o meu /etc/fstabjá estava correto. Acontece que havia algo de errado com o formato da minha partição de swap que impedia blkide mountalldetectava a partição de troca.

Detalhes:

  • Minha partição de troca era /dev/mapper/foo-swap_1- um volume lógico do LVM em uma partição criptografada (LUKS).
  • A partição de troca nunca estaria ativa na inicialização.
  • A execução manual swapon -afuncionou.
  • lsblk mostrou a partição swap
  • blkid NÃO mostrou a partição de troca
  • blkid -p /dev/mapper/foo-swap_1 imprimiu a seguinte mensagem:

    /dev/mapper/foo-swap_1: ambivalent result (probably more filesystems on the device, use wipefs(8) to see more details)
    
  • wipefs -n /dev/mapper/foo-swap_1 mostrou duas assinaturas diferentes do sistema de arquivos!

Nuking ambas as assinaturas ( wipefs -a) e reformatar a troca ( mkswap) corrigiu o problema para mim.

Aqui está um script que automatiza a correção:

#!/bin/sh

# helper functions
log() { printf %s\\n "$*"; }
error() { log "ERROR: $*" >&2; }
fatal() { error "$*"; exit 1; }
try() { "$@" || fatal "'$*' failed"; }

# path to the swap partition
SWAP=/dev/mapper/foo-swap_1

# remember the UUID of the swap partition
UUID=$(try sed -e 's/RESUME=UUID=//' /etc/initramfs-tools/conf.d/resume) || exit 1
[ -n "${UUID}" ] || fatal "couldn't read UUID"

# delete filesystem/raid signatures from the swap partition
try wipefs -a "${SWAP}"

# format the swap partition
try mkswap -f -U "${UUID}" "${SWAP}"

1

Após a atualização para o 12.04, ocorreram algumas pequenas anomalias, nada demais. Eu não sabia que minha partição de troca não estava funcionando até tentar Gimp um jpg de 14 megapixels da minha Olympus e330. Caramba.

Fóruns para o resgate. Pistas:

blkid mostra

/dev/sdb6: UUID="3e0550cf-4a55-4aa8-80fa-24103c1b25a7" TYPE="swap" 

mas não está ativo de acordo com o System Monitor, mmm'kay.

O UUID estava definitivamente certo, mas não foi ... não sei como cheguei a este comando:

# blkid -p /dev/mapper/foo-swap_1
error: /dev/mapper/foo-swap_1: No such file or directory

O gerenciador de arquivos me mostrou um ícone de 0 byte, controle de nome de arquivo, - então o que deveria ser escrito lá? Pelo quê?

$ sudo swapon --all --verbose yielded
swapon: cannot find the device for UUID=3e0550cf-4a55-4aa80fa-24103c1b25a7

Editei o arquivo / etc / fstab adicionando

/dev/sdb6   none    swap    sw  0   0

Reinicialização e o Monitor do sistema mostra-o ativo, sim.

OK, eu devo estar aqui e encontrei o comando

blkid -p /dev/mapper/foo-swap_1

Portanto, é uma pista para alguém mais inteligente que eu. Espero que ajude.


0

Após o UUID:

# Turn off swap swapoff "${SWAP}"

No fim:

swapon "${SWAP}"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.