Como mover o diretório srv para outra partição?

3

Ao instalar o Ubuntu (10.04) eu escolhi o / home para ser instalado em uma partição separada. Eu gostaria de mover o diretório / srv para a mesma partição.

O problema que encontrei é que o Ubuntu não criou um diretório / home dentro da própria partição. Apenas coloca os diretórios da conta na partição e monta-a em / home . Por isso, não consigo mover facilmente a pasta / srv para a partição.

Como posso:

  1. Mova esses diretórios de conta para uma pasta pessoal dentro da partição
  2. Torne essa nova pasta home a pasta padrão / home .
  3. ditto com a pasta / srv ou qualquer outra que eu escolha no futuro.
por lamcro 28.06.2010 / 05:56

3 respostas

3

Quando o /home tiver sido montado, você poderá fazer uma montagem de ligação para montar, /home/srv on /srv .

mount --bind /home/srv /srv

Nesse caso, os mesmos arquivos aparecerão em /home/srv e /srv .

Ou você pode fazer uma montagem de movimento para mover /home/srv para /srv .

mount --move /home/srv /srv

Nesse caso, /home/srv não existirá mais após a montagem. A desmontagem de /srv fará com que /home/srv apareça novamente.

    
por 28.06.2010 / 06:41
2

Se eu entendi corretamente o que você está tentando fazer, não é exatamente possível - a montagem não funciona dessa maneira. (Embora você possa fingir, como explicado, por exemplo, na resposta de Ignacio)

Você pode pensar em cada partição como seu próprio sistema de arquivos. Portanto, por exemplo, digamos que você tenha uma partição sda1 que você usará para a raiz do sistema de arquivos geral e sda2 que você usará para manter diretórios pessoais. Como você sabe agora, o sistema de arquivos em sda1 contém diretórios de nível superior bin , lib , usr , home , etc., e o sistema de arquivos em sda2 contém diretórios de nível superior user1 , user2 , etc. (ou seja qual for o diretório inicial de seus usuários). A hierarquia pode ser assim:

sda1
|-bin
| |- (programs)
|-home
|-lib
| |- (libraries)
|-usr
| |-bin
| |-lib
| |-share

sda2
|-user1
| |-Documents
|-user2
| |-Documents

E também, como você sabe, para montar um sistema de arquivos, você precisa especificar o sistema de arquivos (é claro) e um diretório, o ponto de montagem . Quando você faz isso, o diretório especificado torna-se o nome da raiz do sistema de arquivos da partição. Por exemplo, uma das primeiras coisas que o SO faz ao inicializar é a montagem sda1 (neste exemplo) no diretório / . Isso torna / o nome da raiz do sistema de arquivos em sda1 . Agora você pode consultar o diretório bin em sda1 as /bin , por exemplo. Posteriormente, no processo de inicialização, o SO monta sda2 on /home/ , o que significa que /home/ é o nome da raiz do sistema de arquivos sda2 . Para se referir ao diretório user1 em sda2 , você pode escrever /home/user1 . E assim por diante.

Agora, parece que o que você tinha em mente era atribuir um nome (como /srv/ ) a algum subdiretório dentro do sistema de arquivos de uma partição, em vez da raiz desse sistema de arquivos. Mas mount não funciona dessa maneira. Não tenho certeza se há uma razão técnica para isso, ou se foi apenas uma decisão de design dos mantenedores do kernel do Linux. A linha inferior é, para ter acesso a qualquer coisa em uma partição, você deve atribuir um nome à raiz do sistema de arquivos. Mas, uma vez feito isso, você pode tornar os subdiretórios dentro do sistema de arquivos da partição acessíveis sob outros nomes usando a opção --bind para mount , e essa é provavelmente sua melhor opção.

    
por 28.06.2010 / 07:19
1

no seu caso, / home é considerado o "ponto de montagem", o nome do ponto de montagem pode ser alterado editando / etc / fstab

    
por 28.06.2010 / 06:12