Windows 7, 8.1, 10 ISO download


1. Move to Windows 10 webpage
 : https://www.microsoft.com/ko-kr/software-download/windows10ISO/

2. Set browser
 : click "F12" button on keyboard, then click "Console" tab on browser window

3. Copy below code
var _0x5c09=["product-edition","getElementById","innerHTML","<option value='' selected='selected'>Select edition</option><option value='2'>Windows 7 Home Basic SP1 </option><option value='4'>Windows 7 Professional SP1 </option><option value='6'>Windows 7 Home Premium SP1 </option><option value='8'>Windows 7 Ultimate SP1 </option><option value='10'>Windows 7 Home Premium N SP1 </option><option value='12'>Windows 7 Professional N SP1 </option><option value='14'>Windows 7 Ultimate N SP1 </option><option value='16'>Windows 7 Professional K SP1 </option><option value='18'>Windows 7 Professional KN SP1 </option><option value='20'>Windows 7 Home Premium K SP1 </option><option value='22'>Windows 7 Home Premium KN SP1 </option><option value='24'>Windows 7 Ultimate KN SP1 </option><option value='26'>Windows 7 Ultimate K SP1 </option><option value='28'>Windows 7 Starter SP1 </option><option value='48'>Windows 8.1 Single Language </option><option value='52'>Windows 8.1 </option><option value='55'>Windows 8.1 N </option><option value='61'>Windows 8.1 K </option><option value='62'>Windows 8.1 KN </option><option value='68'>Windows 8.1 Professional LE </option><option value='69'>Windows 8.1 Professional LE K </option><option value='70'>Windows 8.1 Professional LE KN </option><option value='71'>Windows 8.1 Professional LE N </option><option value='75'>Windows 10 Education (Academic) th1</option><option value='76'>Windows 10 Education KN (Academic) th1</option><option value='77'>Windows 10 Education N (Academic) th1</option><option value='78'>Windows 10 China Get Genuine Chinese Simplified th1</option><option value='79'>Windows 10 th1</option><option value='80'>Windows 10 KN th1</option><option value='81'>Windows 10 N th1</option><option value='82'>Windows 10 Single Language th1</option><option value='83'>Windows 7 Home Basic SP1 COEM </option><option value='85'>Windows 7 Home Basic SP1 COEM GGK </option><option value='86'>Windows 7 Home Premium N SP1 COEM </option><option value='87'>Windows 7 Home Premium SP1 COEM </option><option value='88'>Windows 7 Home Premium SP1 COEM GGK </option><option value='89'>Windows 7 Home Premium K SP1 COEM </option><option value='90'>Windows 7 Professional N SP1 COEM </option><option value='91'>Windows 7 Professional SP1 COEM </option><option value='92'>Windows 7 Starter SP1 COEM </option><option value='93'>Windows 7 Ultimate K SP1 COEM </option><option value='94'>Windows 7 Ultimate KN SP1 COEM </option><option value='95'>Windows 7 Ultimate N SP1 COEM </option><option value='96'>Windows 7 Ultimate SP1 COEM </option><option value='97'>Windows 7 Home Premium KN SP1 COEM </option><option value='98'>Windows 7 Professional KN SP1 COEM </option><option value='99'>Windows 10 (1511 th2) </option><option value='100'>Windows 10 Education (1511 th2) </option><option value='101'>Windows 10 Education KN (1511 th2) </option><option value='102'>Windows 10 Education N (1511 th2) </option><option value='103'>Windows 10 China Get Genuine Chinese Simplified (1511 th2)</option><option value='104'>Windows 10 KN (1511 th2) </option><option value='105'>Windows 10 N (1511 th2) </option><option value='106'>Windows 10 Single Language (1511 th2) </option><option value='109'>Windows 10 (1511_1) </option><option value='110'>Windows 10 Education (1511_1) </option><option value='111'>Windows 10 Education KN (1511_1) </option><option value='112'>Windows 10 Education N (1511_1) </option><option value='113'>Windows 10 China Get Genuine Chinese Simplified (1511_1) </option><option value='114'>Windows 10 KN (1511_1) </option><option value='115'>Windows 10 N (1511_1) </option><option value='116'>Windows 10 Single Language (1511_1) </option>","log"],_0x1d62=[_0x5c09[0],_0x5c09[1],_0x5c09[2],_0x5c09[3],_0x5c09[4],_0x5c09[5],_0x5c09[6],_0x5c09[7],_0x5c09[8],_0x5c09[9],_0x5c09[10],_0x5c09[11],_0x5c09[12]],edititonbox=document[_0x1d62[1]](_0x1d62[0]);edititonbox[_0x1d62[2]]=_0x1d62[3],edititonbox[_0x1d62[5]][_0x1d62[4]]=_0x1d62[6],edititonbox[_0x1d62[5]][_0x1d62[7]]=_0x1d62[8],edititonbox[_0x1d62[5]][_0x1d62[9]]=_0x1d62[10],document[_0x1d62[1]](_0x1d62[11])[_0x1d62[2]]=_0x1d62[12],console[_0x5c09[14]](_0x5c09[13]);
4. Paste to browser console window then ENTER

5. Select edition

6. Download!

Ubuntu Shell 변경

Ubuntu 환경에서 codesourcery tool chain을 설치하다보면 shell 변경 요구가 발생한다.

이 글에선 간단히 shell 변경하는 법을 다루고자 한다.

쉘 변경

 shell 변경을 위한 명령(command)을 입력한다.

 $ sudo dpkg-reconfigure -plow dash

쉘 선택


 명령을 입력하면 dash 쉘을 시스템 기본 쉘로 이용 할 것인지를 묻는 화면이 표시된다.
 bash shell을 사용하려면 'No' 를 선택한다.

쉘 확인

 쉘이 제대로 변경됐는지 확인하기 위한 명령을 입력한다.

 $ ls -al /bin/sh

bash 로 설정된 경우


dash 로 설정된 경우


쉘 복원

 설치 종료 후 쉘을 원래대로 복원하는 방법은 간단하다.
 쉘 변경 절차에서 입력한 명령을 입력하고 쉘 선택 화면에서 'Yes'를 선택하면 된다.


KeyPoint

 dash -> bash :  No
 bash -> dash :  Yes


C, freopen


[원문 보기]

설명

freopen함수는 열려있는 stdin, stdout, stderr 스트림을 닫고 파일로 redirect 해주는 함수이다. 스트림이 무조건 닫히기 때문에 freopen에 인자로 넘겨준 스트림은 화면(모니터)에 출력되지 않고 파일에만 쓰인다. 다시 화면(모니터)에 출력하기 위해선 아래 예제와 같이 tty로 redirect 해주면 된다.


함수

FILE *freopen(const char *filename, const char *mode, FILE *stream)

인자

filename : 스트림을 출력할 파일명
mode : 파일 접근모드로 모드 별 설명은 아래와 같다.
modeDescription
"r"읽기 모드로, 파일이 반드시 존재해야하며 없을 경우 에러를 발생한다.

Opens a file for reading. The file must exist.
"w"쓰기 모드로, 파일이 없을 경우 생성한다. 파일이 존재할 경우에는 기존 내용은 삭제되고 새로운 내용을 덮어쓴다.

Creates an empty file for writing. If a file with the same name already exists then its content is erased and the file is considered as a new empty file.
"a"추가 모드로, 파일의 마지막(end of file)에 새로운 내용을 쓴다. 파일이 없을 경우에는 생성한다.

Appends to a file. Writing operations appends data at the end of the file. The file is created if it does not exist.
"r+"읽기, 쓰기 모두 가능한 모드로, 파일이 반드시 존재해야하며 없을 경우 에러를 발생한다.

Opens a file to update both reading and writing. The file must exist.
"w+"읽기, 쓰기 모두 가능한 모드로, 내용이 없는 신규 파일을 생성한다.

Creates an empty file for both reading and writing.
"a+"일기, 추가 모드로 파일을 연다.

Opens a file for reading and appending.

stream: FILE형 포인터로 redirect하기위해 다시 열기(re-open) 하려는 스트림을 나타낸다. stdin, stdout, stderr가 있다.

리턴 값
스트림이 정상적으로 다시 열리면(re-open) 스트림 포인터를, 오류일 경우 널(null) 포인터를 반환한다.

Example
#include 

int main(void)
{
 /* stdout 스트림을 stdoutTest.txt 파일로 redirect 한다. */
 if (freopen("stdoutTest.txt", "w", stdout) == NULL){
  fprintf(stderr, "Error redirecting stdout\n");
 } 

 /* 아래 문장이 파일스트림에 써지게된다. */
 fprintf(stdout, "[fprintf] Stdout stream redirect test.\n");
 printf("[printf] Stdout stream redirect test.\n");

 /* stdout 스트림을 닫는다 */
 fclose(stdout);

 /* stdout 스트림을 다시 화면(모니터)에 출력하기 위해서
 스트림을 redirect 한다.*/
 // linux
 freopen("/dev/tty", "w", stdout);
 
 // windows
 freopen("CON", "w", stdout);//window CON or CON:
 
 return 0;
}

삼성 아티브북9 파티션 재구성, 포맷, 그리고 Windows 10 재설치

파티션 재구성으로 시작된 아티브북9과의 전쟁이 드디어 종결됐다.
전쟁 히스토리를 남기고자 한다.


<전쟁의 씨앗>
1. 128GB의 적은 용량을 파티셔닝함(C:, D:로 분할)
2. 파티셔닝 해보니 복구파티션 등으로 70, 30GB 정도로 나뉨


<갈등의 시작>
3. 이건 뭣 좀 설치하고 뭣 좀 저장하다보면 둘 다 용량이 애매하게 남는다.
   (eg. C: 65/70GB, D:27/30GB)


<전쟁의 서막>
4. 1년 정도 사용하다보니 포맷의 필요성이 느껴진다.
5. OS를 재설치하기 이전에 나눴던 파티션 통합의 필요성이 느껴진다.
6. 파티션을 합치려고 보니 구조가 아래처럼 이상하다. -_-
  ------------------------------------------------------------------------------
  |       (1)    |       (2)   |       (3)       |     (4)    |     (5)     |     (6)  |
  -------------------------------------------------------------------------------
  |    EFI      |      C:    | 정상(복구) |      D:    |    복구   |   복구  |
  | (100MB) (70GB) |  (100MB)   | (30GB) | (13GB)  | (1GB) |
  ------------------------------------------------------------------------------

7. C, D만 합치려고 하는데 '(2).정상(복구)' 구간이 삭제가 안된다.


<분노 폭발>
8. 디스크 관리자에서 C:, D: 를 합치려고 하는데 '(3). 정상(복구)' 구간 때문에 안된다.
9. 구글링 해보니 cmd로 하는 방법이 있다. 대충 보고 파티션을 삭제하기 시작한다.
10. 오! 잘 된다~ 싶은데 뭔가 이상하다. 보여지는 파티션 순서대로 번호를 입력해서 삭제를 하는데 이상하게 삭제된다.
11. 순정에서 제공하는 복원 이미지가 날아가버렸다. -_- 아놔. 파티션이 아래처럼 되버렸다.
  -------------------------------------------------------
  |       (1)    |       (2)    |       (3)       |     (4)    |
  -------------------------------------------------------
  |      EFI    |       C:    | 정상(복구) |      D:    |
  | (100MB) | (70GB)  |   (100MB)  | (44GB) |
  -------------------------------------------------------

11. 구글링 다시 시작.


<협상>
12. cmd를 통해 파티션 삭제하는 방법을 자세하게 차근차근 설명한 곳을 찾았다.


<착각>
13. 구글링으로 찾은 복구 파티션 삭제하기 를 참고해서 '(2).정상(복구)' 를 삭제한다.
링크: http://blog.naver.com/PostView.nhn?blogId=hyunhansol&logNo=120173498394

14. 오! 깔끔히 잘 지워진다.! 드디어 끝이다!!!


<배반>
15. 파티션은 정리가 됐고 이제 미리 만들어놓은 USB로 부팅해서 OS만 설치하면 된다.
16. 근데, USB 부팅이 BIOS 메뉴에 없다.
17. 뭘해도 안된다. 아놔.
18. 짜증나서 A/S센터에서 복원 이미지를 복원해야하나 하고 찾아보니 비용이 꽤 된단다.
19. 짜증 대폭발


<돌격>
20. 다시 구글링.
21. 오! 역시 구글은 대단하도다!!! 해결책 발견!
링크: https://craftedflash.com/info/how-boot-computer-from-usb-flash-drive
검색 키워드: Ativ Book 2, 8, 9

22. 된다!! 된다!!!


<최후의 몸부림>
23. USB 부팅이 되는걸 확인하고 데스크탑에서 디스크 파티션에 대해 좀 찾아본다.
24. 찾긴 제대로 찾았는데 피곤해서 대충 읽어본다.
25. 'EFI(100MB), MSR(128MB), 주 파티션'의 구성이 기본이라는걸 읽었는데 대충 읽는다.
26. Windows 10 설치화면에서 파티션 구성을 3개로 나눠, 100MB, 128MB, 나머지로 잡는다.
27. 근데 GPT 파티션으로 설정되어 OS 설치가 안된단다 -_-;;;
     (역시 선무당이 사람잡는다고, 뭘하든지 볼거면 정확히 보고, 할 거면 제대로 해야한다.)
28. 급히 GPT 파티션으로 구글링하자 역시나 해결방법이 바로 검색된다.
링크: http://okok.co.kr/106  ->  감사합니다! ㅜㅜ


<승리!>
29. 드디어!!! Windows 10이 설치된다.


<후기>
집에서는 항상 assembled&customized(?) 된 PC만 사용하다보니
파티션 재구성, 주기적 포맷이 습관화 되어 있었다.
그러다보니 패턴 또한 습관화 되어있었고, 별 생각없이 시작한 파티션 재구성이
몇 시간을 아티브북9과 전쟁하도록 만들었다.

결론:
120GB 파티션 나눠봤자 그게 그거다. 그냥 잘 쓰고 필요시엔 순정 복구이미지로 복구하자!

윈도우10 파티션 복구

128GB SSD를 장착한 노트북을 사용하는데 습관적으로 파티션을 나눠 사용하다보니
안나누니만 못한 상황이 생겨버렸다.
(C, D 드라이브 모두 어중간하게 용량이 남고, 결과적으로 두 군데 모두 용량이 부족하지만 남는 공간을 합쳐보면 또 충분한 공간이 생기는 아이러니한 상황)

그래서 파티션을 다시 합치려고 보니 복구파티션이 C, D 드라이브 파티션의 중간에
끼어버려서 D 드라이브 파티션 축소를 해도 C 드라이브에서 파티션 확장을 못하는
아주 귀찮은 상황이 발생 해버렸다.

아래는 구글링을 통해 찾은 자료들로 문제해결에 도움이 된 링크들이다.

[참고1] 복구 파티션 삭제하기
[참고2] UEFI 기반 디스크 파티션 권장 구성