scp não é capaz de gravar em um volume montado, reclama que é somente leitura [fechado]

1

(Nota: embora eu esteja fazendo uma pergunta diferente aqui, isso é essencialmente para diagnosticar o mesmo problema que relatei em esta questão no StackOverflow).

Eu tenho uma máquina virtual do Google Cloud Compute Engine. A imagem usa o Google Container-Optimized OS (se isso atrapalhar a depuração, estou pensando em migrar para o Ubuntu). Segui as instruções na documentação deles para formatar um volume recém-montado na máquina . Especificamente, eu corri:

sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/[DEVICE_ID]
sudo mkdir -p /mnt/disks/[MNT_DIR]
sudo mount -o discard,defaults /dev/[DEVICE_ID] /mnt/disks/[MNT_DIR]
sudo chmod a+w /mnt/disks/[MNT_DIR]

Onde MNT_DIR é o diretório que eu estava montando no dispositivo, e DEVICE_ID é o nome do dispositivo, como por sudo lsblk (automaticamente sdb , parece, não que isso importe).

Um rápido ls -l /mnt/ mostra que o volume parece ter sido montado corretamente e que existem permissões de leitura e gravação do mundo para o diretório:

drwxrwxrwx 3 root root 4096 Mar  8 00:00 subway-explorer-datastore

OK, agora gostaria de transferir alguns dados para esta máquina. O GCE inclui um comando google compute scp ( documentado aqui ), que parece ser apenas um invólucro fino o comando scp do UNIX. Então eu posso usar isso para escrever alguns dados da minha máquina dev local e para este disco na nuvem, certo?

Então eu corro:

gcloud compute scp ~/Desktop/subway-explorer-api/logbooks.sqlite gke-webapp-default-pool-49338587-d78l:/mnt/subway-explorer-datastore --zone us-central1-a

E eu fico muito ocupado com isso.

scp: /mnt/subway-explorer-datastore: Read-only file system
ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].

O resto do sistema de arquivos está bem. Por exemplo, os seguintes sucessos:

gcloud compute scp ~/Desktop/subway-explorer-api/logbooks.sqlite gke-subway-explorer-default-pool-2bef4d1d-f7dn:/dev/null

Este é um erro gerado por scp , não pelo% fino wrappergcloud. Para meus olhos inexperientes, as permissões na pasta raiz parecem boas. Então, quais são algumas razões pelas quais scp pode estar jogando esse erro? Como depuro isso?

    
por Aleksey Bilogur 08.03.2018 / 04:44

1 resposta

1

Como supostos por @cas nos comentários, estou escrevendo para uma pasta que não existe. Depois que mudei o caminho para /mnt/subway-explorer-datastore , funcionou corretamente.

Recupere a mensagem de erro:

scp: /mnt/subway-explorer-datastore: Read-only file system

Isso é enganoso! Lendo essa resposta eu assumi <(em) (desde scp não pode criar pastas) que a pasta existia, e o problema era que eu estava faltando as permissões corretas.

Eu gostaria de pensar que pegaria esse erro sozinho em uma xícara de café fresco.

    
por 08.03.2018 / 17:26