Problema com a partição raiz

Iniciado por panthokrator, 27 de Maio de 2012, 20:23

tópico anterior - próximo tópico

panthokrator

Olá a todos,
                 
                  estou com o seguinte problema: Eu estava usando o programa PySDM de gerenciamento de partições (Storage Device Manager) para configurar determinadas partições para serem montadas automaticamente na inicialização. Entretanto entre as partições que configurei estava a partição raiz e depois que alterei eu não consegui mais entrar no Ubuntu. Quando tento logar aparece uma mensagem com algo como "fsck de util. linux.../dev/sda7 clean...files blocks mountall: mount/ [780] permissão negada". Não sei exatamente onde errei, mas o sistema não entra nem com o uso do Supergrub.
               Andei dando uma pesquisada e acho que como eu configurei para que a raiz seja montada automaticamente o fsck não pode ser concluído, porque tal não é possível em partições montadas. Se esse é o problema, a pergunta que fica agora é como desativar a montagem automática da raiz??


Para facilitar vou dar mais detalhes


O meu arquivo fstab esta assim:

UUID=a667c4f9-08ed-4447-9c38-f4425421b363 swap swap sw 0 0
UUID=3246db26-7d1b-41a9-829b-58e322e8eb82 / ext4 defaults 0 0
UUID=71f97f98-e184-4043-b92e-ac19ad4da040 / ext4 users,user 0 1
/dev/sda8 /media/sda8 ext4 users,user 0 0
/dev/sda9 /media/sda9 ext4 users,user 0 0






*A raiz esta na partição /dev/sda6 ( 71f97f98-e184-4043-b92e-ac19ad4da040 )


O arquivo mount esta assim:


# mount(8) completion. This will pull a list of possible mounts out of
# /etc/{,v}fstab, unless the word being completed contains a ':', which
# would indicate the specification of an NFS server. In that case, we
# query the server for a list of all available exports and complete on
# that instead.
#
have mount &&
{

# Just like COMPREPLY=(`compgen -W "${COMPREPLY
  • }" -- "$cur"`), only better!
    #
    # This will correctly escape special characters in COMPREPLY.
    _reply_compgen_array()
    {
    # Create the argument for compgen -W by escaping twice.
    #
    # One round of escape is because we want to reply with escaped arguments. A
    # second round is required because compgen -W will helpfully expand it's
    # argument.
    local i wlist
    for i in ${!COMPREPLY
  • }; do
    local q=$(quote "$(printf %q "${COMPREPLY[$i]}")")
    wlist+=$q$'\n'
    done

    # We also have to add another round of escaping to $cur.
    local ecur="$cur"
    ecur="${ecur//\\/\\\\}"
    ecur="${ecur//\'/\'}"

    # Actually generate completions.
    local oldifs=$IFS
    IFS=$'\n' eval 'COMPREPLY=(`compgen -W "$wlist" -- "${ecur}"`)'
    IFS=$oldifs
    }

    # Unescape strings in the linux fstab(5) format (with octal escapes).
    __linux_fstab_unescape() {
    eval $1="'${!1//\'/{TTEXTO}47}'"
    eval $1="'${!1/%\\/\\\\}'"
    eval "$1=$'${!1}'"
    }

    # Complete linux fstab entries.
    #
    # Reads a file from stdin in the linux fstab(5) format; as used by /etc/fstab
    # and /proc/mounts.
    _linux_fstab()
    {
    COMPREPLY=()

    # Read and unescape values into COMPREPLY
    local fs_spec fs_file fs_other
    local oldifs="$IFS"
    while read -r fs_spec fs_file fs_other; do
    if [[ $fs_spec =
  • * ]]; then continue; fi
    if [[ $1 == -L ]]; then
    local fs_label=${fs_spec/#LABEL=}
    if [[ $fs_label != "$fs_spec" ]]; then
    __linux_fstab_unescape fs_label
    IFS=$'{TTEXTO}'
    COMPREPLY+=("$fs_label")
    IFS=$oldifs
    fi
    else
    __linux_fstab_unescape fs_spec
    __linux_fstab_unescape fs_file
    IFS=$'{TTEXTO}'
    [[ $fs_spec = */* ]] && COMPREPLY+=("$fs_spec")
    [[ $fs_file = */* ]] && COMPREPLY+=("$fs_file")
    IFS=$oldifs
    fi
    done

    _reply_compgen_array
    }

    _mount()
    {
    local cur sm host prev

    COMPREPLY=()
    _get_comp_words_by_ref -n : cur prev

    case $prev in
    -t|--types)
    _fstypes
    return 0
    ;;
    esac

    [[ "$cur" == \\ ]] && cur="/"

    if [[ "$cur" == *:* ]]; then
    for sm in "$(type -P showmount)" {,/usr}/{,s}bin/showmount; do
    [ -x "$sm" ] || continue
    COMPREPLY=( $( compgen -W "$( "$sm" -e ${cur%%:*} | \
    awk 'NR>1 {print $1}' )" -- "${cur#*:}" ) )
    return 0
    done
    fi

    if [[ "$cur" == //* ]]; then
    host=${cur#//}
    host=${host%%/*}
    if [ -n "$host" ]; then
    COMPREPLY=( $( compgen -P "//$host" -W \
    "$( smbclient -d 0 -NL $host 2>/dev/null |
    sed -ne '/^['"$'\t '"']*Sharename/,/^$/p' |
    sed -ne '3,$s|^[^A-Za-z]*\([^'"$'\t '"']*\).*$|/\1|p' )" \
    -- "${cur#//$host}" ) )
    fi
    elif [ -r /etc/vfstab ]; then
    # Solaris
    COMPREPLY=( $( compgen -W "$( awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' /etc/vfstab )" -- "$cur" ) )
    elif [ ! -e /etc/fstab ]; then
    # probably Cygwin
    COMPREPLY=( $( compgen -W "$( mount | awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' )" -- "$cur" ) )
    else
    # probably Linux
    if [ "$prev" = -L ]; then
    _linux_fstab -L < /etc/fstab
    elif [ "$prev" = -U ]; then
    COMPREPLY=( $( compgen -W '$(sed -ne "s/^[[:space:]]*UUID=\([^[:space:]]*\).*/\1/p" /etc/fstab )' -- "$cur" ) )
    else
    _linux_fstab < /etc/fstab
    fi
    fi

    return 0
    } &&
    complete -F _mount -o default -o dirnames mount

    # umount(8) completion. This relies on the mount point being the third
    # space-delimited field in the output of mount(8)
    #
    have umount &&
    _umount()
    {
    local cur
    _get_comp_words_by_ref cur
    COMPREPLY=()

    if [[ $(uname -s) = Linux && -r /proc/mounts ]]; then
    # Linux /proc/mounts is properly quoted. This is important when
    # unmounting usb devices with pretty names.
    _linux_fstab < /proc/mounts
    else
    local IFS=$'\n'
    COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- "$cur" ) )
    fi

    return 0
    } &&
    complete -F _umount -o dirnames umount

    }

    # Local variables:
    # mode: shell-script
    # sh-basic-offset: 4
    # sh-indent-comment: t
    # indent-tabs-mode: nil
    # End:
    # ex: ts=4 sw=4 et filetype=sh
    [/color]


    O arquivo mountall.conf esta assim:


    # mountall - Mount filesystems on boot
    #
    # This helper mounts filesystems in the correct order as the devices
    # and mountpoints become available.

    description "Mount filesystems on boot"

    start on startup
    stop on starting rcS

    expect daemon
    task

    emits virtual-filesystems
    emits local-filesystems
    emits remote-filesystems
    emits all-swaps
    emits filesystem
    emits mounting
    emits mounted

    # temporary, until we have progress indication
    # and output capture (next week :p)
    console output

    script
    . /etc/default/rcS
    [ -f /forcefsck ] && force_fsck="--force-fsck"
    [ "$FSCKFIX" = "yes" ] && fsck_fix="--fsck-fix"

    # set $LANG so that messages appearing in plymouth are translated
    if [ -r /etc/default/locale ]; then
    . /etc/default/locale
    export LANG LANGUAGE LC_MESSAGES LC_ALL
    fi

    exec mountall --daemon $force_fsck $fsck_fix
    end script

    post-stop script
    rm -f /forcefsck 2>dev/null || true
    end script

irtigor

Citação de: panthokrator online 27 de Maio de 2012, 20:23
UUID=3246db26-7d1b-41a9-829b-58e322e8eb82 / ext4 defaults 0 0
UUID=71f97f98-e184-4043-b92e-ac19ad4da040 / ext4 users,user 0 1

Se 71f97f98.. é a partição raiz, a linha anterior, da partição 3246db26..., não deveria existir porque tá configurada pra montar a raiz (veja o que está em negrito). Fora isso, eu removeria as opções "users,user" da partição raiz, e colocaria "defaults" no lugar.

Obs: poderia ter usado "code" ou "quote" no lugar da cor vermelha, ficaria mais legível.

AdvancedS17

Acho que o problema está no fato de duas partições estarem escolhidas para serem montadas como raiz, remova a que não quer como raiz e por favor diga se funcionou.
Maçon, apoiador de todas as religiões (de preferência conformistas) e enfocado no cristianismo. Universitários do mundo todo, esqueçam os dogmas, devolvam meu corpo que perdi ao longo dos séculos; só não peço para me tornarem um deus, pois ter uma saúde perfeita já basta. Holandês aqui não tem vez.

panthokrator

#3
Desculpe pela cor da fonte, não estou habituado a postar no ubuntuforum...obrigado pela pronta responta! Não entendi "veja o que está em negrito", desculpe, mas porque você diz isso? O meu pc esta com dual boot seven+ubuntu 12.04. O fstab mencionado é do Ubuntu 12.04 com problemas, ele é anterior a algumas alterações que fiz. Ou seja:  eu alterei algumas partições e reinstalei o ubuntu. Acabei presenvando a partição raiz problematica porque quero alguns dados nela, A seguir é o fstab do Ubuntu recem instalado:

# /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/sda10 during installation
UUID=2a104fb4-cedd-4fa1-b501-b020fd33d291 /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda9 during installation
UUID=0f9bfb36-052d-4c6b-a3ca-2242f441ddde /boot           ext4    defaults        0       2
# /home was on /dev/sda7 during installation
UUID=938766f8-38f0-4f1d-8cbf-e39925b1daa6 /home           ext4    defaults        0       2
# swap was on /dev/sda5 during installation
UUID=a667c4f9-08ed-4447-9c38-f4425421b363 none            swap    sw              0       0


Caso tenha algum jeito de ressuscitar o Ubuntu anterior, melhor seria... Será que dá????  

irtigor

No meu comentário, eu deixei em negrito o ponto de montagem marcado no seu fstab. Você tinha duas entradas com "/", que é a raiz. Pra usar a raiz antiga, faça algo como

Citar
#UUID=2a104fb4-cedd-4fa1-b501-b020fd33d291 /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda9 during installation
#UUID=0f9bfb36-052d-4c6b-a3ca-2242f441ddde /boot           ext4    defaults        0       2
UUID=71f97f98-e184-4043-b92e-ac19ad4da040 / ext4 errors=remount-ro 0 1

Se a partição em negrito realmente for a raiz, deve funcionar (se comentar o /boot, pra usar o do sistema antigo, será necessário atualiza-lo ante de usar o sistema, dê uma olha em "como recuperar o grub").

panthokrator

#5
Hehheheh!!! Obrigado. Desculpe, mas não havia percebido o sutil negrito que você colocou na "/", vou testar a sua dica e retorno com o resultado.

Citar
No meu comentário, eu deixei em negrito o ponto de montagem marcado no seu fstab. Você tinha duas entradas com "/", que é a raiz. Pra usar a raiz antiga, faça algo como.

panthokrator

#6
RESOLVIDO

Olá de novo,
                 conforme a orientação dos caros irtigor  e AdvancedS17, pela nova instalação, eu acessei como root, fiz algumas alterações no arquivo fstab da instalação anterior do Ubuntu, apaguei a linha da partição raiz que estava errada  (que de fato ja não existia mais) e depois salvei. Deu certo pessoal, muito obrigado a todos!!! ;D ;D ;D valeusss!!!!!


ficou assim:

#UUID=a667c4f9-08ed-4447-9c38-f4425421b363  swap      swap  sw   0  0 
#UUID=2a104fb4-cedd-4fa1-b501-b020fd33d291 /  ext4    errors=remount-ro 0  1
# /boot was on /dev/sda9 during installation
#UUID=0f9bfb36-052d-4c6b-a3ca-2242f441ddde /boot  ext4  defaults  0  2
UUID=71f97f98-e184-4043-b92e-ac19ad4da040 / ext4 errors=remount-ro 0 1