목적: 명령줄을 통해 공식 Win10_1909 iso를 Linux에 직접 다운로드합니다.
원천:https://www.microsoft.com/en-in/software-download/windows10ISO
버전과 언어를 선택하면 다음과 같은 64비트 링크가 제공되며, 이는 24시간 이내에 유효합니다.
이는 모든 GUI 브라우저나 플랫폼에서 잘 작동하지만 Linux 상자에서 사용해야 합니다.
- 물론 리눅스 서버에는 GUI가 없습니다. (GUI를 설치할 계획은 없습니다.)
- wget/curl로 인해 html 파일 다운로드가 금지됩니다.
- 사용자 에이전트를 Firefox로 변경하거나 wget/curl : curl -d '{ "t": 77e897e2-a32c-419c-8f18-54770dbb5a15, "e": 1583942596, "h": 595f691df8f7e4088d24b6c37d. iso 파일이 금지된 페이지를 반환합니다.
- aria 및 axel과 같은 Linux 기반 다운로드 관리자를 시도했지만 금지로 인해 실패했습니다.
명령줄을 통해서만 이 작업을 수행하려면 어떻게 해야 합니까?
답변1
이는 URL에 쉘에서 해석되는 특수 문자가 있기 때문에 금지됩니다. 예를 들어 '?'와 '&'가 있습니다. 이제 예시 URL을 살펴보세요.
Curl-LOCATION-원격 이름 https://software-download.microsoft.com/pr/win10_1909_nglish_x64.iso?t=77395428-650E-8BCC-97abca3 47EAA & E = 1583937294 & H = 2B05FAD63D3A6E2A0C4A20CB49F34E7C
이는 다음을 수행합니다.
- 실제로 다음을 수행하는 서브셸을 시작합니다.
컬 --location --remote-name https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa
- 변수 "e"에 "1583937294" 값이 할당된 하위 쉘을 시작합니다.
- 현재 쉘 환경에는 "2b05fad63d3a6e2a0c4a20cb49f34e7c" 값이 할당된 변수 "h"가 있습니다.
어떻게 고치나요? - 간단합니다. URL 주위에 작은따옴표를 추가하면 됩니다.
curl ---location ---lemote-name 'https://software-download.microsoft.com/pr/win10_1909_english_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa=15837294&h=2BO4440A40A40 49F34 E7C '
답변2
마침내 해결책을 찾았습니다. Firefox에서는 확장이 필요하지 않습니다.
수신된 URL을 얻은 후 Firefox에서 새 탭을 열고 개발자 도구(F12)를 엽니다. 네트워크 탭으로 전환하고 다운로드 URL을 입력하세요. 다운로드하라는 메시지가 나타나면 취소를 클릭합니다.
이제 네트워크 아래에 GET 요청이 있습니다. 이를 마우스 오른쪽 버튼으로 클릭하고 를 선택합니다 Copy > Copy as cURL
. 이 거대한 문자열을 터미널에 붙여넣고 -o [/path/filename]
파일을 STDOUT에 덤프하는 대신 실제로 어딘가에 저장하려면 추가하세요. 그게 다야!
Chromium 기반 브라우저의 경우 Microsoft 다운로드 페이지에서 32비트 다운로드 및 64비트 다운로드 버튼을 생성한 후. 개발자 도구를 열고 네트워크 탭으로 전환합니다(비어 있어야 함). 32비트 또는 64비트 다운로드 버튼을 클릭합니다. 다른 이름으로 저장 대화 상자가 나타나면 취소하세요. 네트워크 탭에 나열된 새 URL을 마우스 오른쪽 버튼으로 클릭하고,복사->컬로 복사
그런 다음 터미널 창에 붙여넣고 값을 추가합니다 -o [/path/filename]
. (예를 들어 -o Win10_20H2_v2_English.iso
) 다운로드가 시작되어야 합니다.
답변3
저는 전체 프로세스를 자동화하기 위해 Mido라는 도구를 만들었습니다.