(참고: 여기서는 다른 질문을 드리고 있지만 이는 본질적으로 제가 현재 하고 있는 작업을 진단하기 위한 것입니다.이 문제StackOverflow에서).
Google Cloud Compute Engine 가상 머신이 있습니다. 이미지는 Google Container-Optimized OS를 사용합니다(디버깅에 방해가 된다면 Ubuntu로 전환하는 것을 고려 중입니다). 나는 다음의 지시를 따랐다.그들의 문서머신에 새로 마운트된 볼륨을 포맷합니다. 구체적으로 다음을 실행했습니다.
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]
MNT_DIR
장치에 설치한 디렉토리와 DEVICE_ID
장치 이름은 어디에 있습니까 sudo lsblk
( sdb
자동인 것처럼 보이지만 중요하지 않습니다).
빠르게 ls -l /mnt/
볼륨 표시~인 것 같다올바르게 설치되었으며 디렉터리에 대한 전역 읽기, 쓰기 및 수정 권한이 있습니다.
drwxrwxrwx 3 root root 4096 Mar 8 00:00 subway-explorer-datastore
좋습니다. 이제 일부 데이터를 이 컴퓨터로 전송하고 싶습니다. GCE에는 google compute scp
명령(여기에 녹음하세요scp
) 이는 UNIX 명령을 둘러싼 얇은 래퍼 처럼 보입니다 . 그러면 이를 사용하여 내 로컬 개발 머신의 일부 데이터를 이 클라우드 디스크에 쓸 수 있습니다. 그렇죠?
그래서 나는 다음을 실행합니다.
gcloud compute scp ~/Desktop/subway-explorer-api/logbooks.sqlite gke-webapp-default-pool-49338587-d78l:/mnt/subway-explorer-datastore --zone us-central1-a
나는 조심스럽게 쪼그려 앉았다.
scp: /mnt/subway-explorer-datastore: Read-only file system
ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].
나머지 파일 시스템은 괜찮습니다. 예를 들어 다음은 성공합니다.
gcloud compute scp ~/Desktop/subway-explorer-api/logbooks.sqlite gke-subway-explorer-default-pool-2bef4d1d-f7dn:/dev/null
scp
이는 Thin Wrapper 가 아닌 의해 발생한 오류입니다 gcloud
. 경험이 없는 내 눈에는 루트 폴더에 대한 권한이 괜찮아 보입니다. 그렇다면 scp
이 오류의 가능한 원인은 무엇입니까? 어떻게 디버깅할 수 있나요?
답변1
@cas가 댓글에서 추측한대로 존재하지 않는 폴더에 쓰고있습니다. 경로를 로 변경하니 /mnt/subway-explorer-datastore
잘 되더군요.
오류 메시지를 기억해 보세요.
scp: /mnt/subway-explorer-datastore: Read-only file system
이것은 오해의 소지가 있습니다! 이 글을 읽고 답장을 보내주세요추정(폴더를 생성할 수 없기 때문에 scp
) 폴더는 존재하는데, 올바른 권한이 부족해서 문제입니다.
나는 신선한 커피 한 잔을 마시면서 이 실수를 스스로 잡을 것이라고 생각합니다.