회사 웹메일을 사용하던중 크롬의 문제인지, 웹사이트 문제인지는 모르겠지만 새탭으로 메일 사이트가 무한 생성되는 문제가 발생된지 어언 10개월이 지났다 이를 해결하려고 크롬디버깅, 웹사이트 소스 분석하다가 지쳐서 그냥 아웃룩을 사용하기로 하고 모두 덮었다. 솔직히 일하면서 이런 문제 때문에 시간 할애하면서 앉아 있는 내가 한심해서 였기 때문이다.

아웃룩 설치하고 계정 등록하고 이것 저것 설정 맞추고 사용하려고 하니, 딱 아웃룩 계정 데이터 (OST)저장 공간이 문제가 발생했다. 현재 C드라이브 SSD 는 용량이 250G (????) 밖에 안된다.  D드라이브는 1T . 계정 데이터 저장 위치를 D 드라이브로 옮겨야 되는데… 안 옮겨진다.

마이크로소프트 사이트도 검색해 보고 구글도 검색해 보고 했지만 시키는데로 해도 안된다.

이건,….뭐하자는건지.. 제작사도 도움 안되고 믿었던 구글마저도 도움이 안된다.

이제까지 저장공간을 옮기기 위해서 내가 해본 건

1) OST 파일을 잘나내기 해서 옮기고자 하는 드라이브로 이동시키고 아웃룩을 재실행. (똑같은 위치에 파일이 다시생성된다)

2) 메일 계정 데이터 탭에서 저장 파일 위치 변경. (아예, 저장 위치 변경 버튼 자체가 활성화 되지도 않는다)

3) 레지스트리 Outlook 항목에 ForceOSTPath 생성 및 계정 데이터 파일 기본 생성 위치 설정. (안된다…. 구글 검색시 90%가 이 방법을 제시한다)


포기하고 다시 웹메일로 돌아갔다……..

그런데 우연히(?) 검색해보다가 메일 계정이 IMAP 일 경우 OST (오프라인 메일 데이터) 파일은 ForceOSTPath 가 아닌 ForcePSTPath로 생성해야 한다고 한다. 버그인건지 뭔진 모르겠다…

그래서 생성해봤다… 옮겨졌다!~~~~~~~~~~~~~~~~~ …ㅡㅡ;;;


정리하자면 Outlook의 OST 파일을 변경 하려면…

1) 레지스트리 HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Outlook 이동

(xx.0 : xx는 Office 버전으로 해당 버전 번호는 검색해야함)

2) Outlook 항목을 선택후 > 새로만들기 –>확장 가능한 문자열 선택

3) ForceOSTPath 입력

4) ForceOSTPath 선택 후 오른쪽 마우스로 수정을 선택 후 OST 파일을 옮기고자 하는 디렉토리 경로 설정.

5) Outlook 항목을 선택후 > 새로만들기 –>확장 가능한 문자열 선택

6) ForcePSTPath 입력

7) ForcePSTPath 선택 후 오른쪽 마우스로 수정을 선택 후 OST 파일을 옮기고자 하는 디렉토리 경로 설정.

8) 레지스트리 종료

다음 링크는 마이크로소프트사에서 제시한 방법이다. ForceOSTPath만 언급되어있다..

https://support.microsoft.com/ko-kr/help/2752583/you-cannot-change-the-location-of-the-offline-outlook-data-file-ost-in

mp3 splitter.zip




이 프로그램은 MP3 파일을 시작 시간 정보를 이용하여 각각의 개별 파일로 자르는 프로그램이다.

image


1. 파일열기
  파일열기 버튼을 [클릭]하여 MP3 파일을 선택한다.
  (탐색기에서 파일을 드래그 하여 프로그램에 드랍해도 됨)
  image


2. 저장 폴더 선택
  잘려진 MP3 파일들이 저장될 폴더를 지정한다.
image

3. 시간 데이터 읽기
  MP3 파일을 자르기 위한 시간정보를 입력하기 위해서 시간데이터 읽기 버튼을 [클릭]한다.
(시간 정보 포맷으로 저장된 txt 파일을 드래그 하여 목록창에 드랍해도 됨)
image

  시간 데이터 읽기 버튼을 클릭하면 다음과 같은 시간 정보 입력창이 생성된다.

image

시간 정보를 입력한다..

image

위와 같이 입력하고 [확인] 버튼을 클릭한다.

* 시간정보 데이터 포맷
  - 시간 정보 데이터는 입력 MP3 의 시작위치 정보만 입력하는 포맷과 시작위치, 종료위치를 입력하는 두 방식이 있다. 

  시작위치만 존재하는 포맷 :
   [파일이름] [시작위치]

  시작,종료 위치가 존재하는 포맷 :
    [파일이름] [시작위치] [종료위치]

   각 포맷의 구별은 공백으로 구별된다.


- 시작 위치 정보만 입력했을 경우는 종료시간이 자동으로 생성되는데 종료시간 위치가 다음 파일 시작 위치 전으로 입력되고 제일 마지막 파일의 종료 위치는 MP3의 마지막 시간으로 자동 입력된다.

image

* 시작위치와 종료 위치를 기록한 포맷일 경우는 두 파일의 시간대가 겹치는 경우는 지원하지 않는다.(시간대가 겹치만 제일 우선 시작시간 파일만 생성됨)


4. 변환

  시간정보까지 입력이 되면 변환 버튼을 클릭하면 각각의 파일로 생성된다.
image 


아…….이런거…

귀찮아…

* 저작권 관련하여 모든 책임은 사용자에게 있습니다.


   


티스토리 로그인 관련해서

에러가 발생한다고 하여 로그인 관련 부분 수정해서
OpenLiveWriter.BlogClient.dll 파일만 배포 합니다.

(zip 압축 파일 해제 후 OpenLiveWriter.BlogClient.dll 파일을 덮어쓰기 하면됨.)


- 로그인 실패 시 로그인창이 별도로 팝업 되도록 수정함.



OpenLiveWriter.BlogClient.zip


  1. proprio 2019.03.14 14:52 신고

    사진을 업로드하면 경로가 제 랩탑의 사진이 위치한 경로로 잡히는데
    티스토리에 업로드할 수 있게 업데이트도 혹시 예정되어있습니까?

    • 얼땅불땅 2019.03.21 19:42 신고

      음... 사진 업로드 어떻게 하시나요?

      Open live writer에 드래그 앤 드롭으로 하시나요? 아니면 , 사진 메뉴 클릭해서 파일을 선택하시나요?

      저는 위 두가지 방법으로 티스토리에 사진을 업로드 하고 있습니다.

    • proprio 2019.03.22 15:27

      open live writer에 드래그 앤 드롭으로 올리면 본래 컴퓨터에 있는 사진은 업로드가 되지 않은채 C:/user - 등의 주소로 업로드가 됩니다. 드래그 앤 드롭을 통해 티스토리 서버에 사진을 업로드 하고 싶습니다. 사진 메뉴를 클릭해서 파일을 선택할 경우에는 티스토리에 업로드가 되는가요? 제가 드래그 앤 드롭만 확인해보았습니다.

      답변 주셔 감사합니다.

    • proprio 2019.03.22 16:05

      다시 해보니 잘됩니다. 감사합니다.

  2. proprio 2019.03.14 15:22 신고

    System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
    위치: OpenLiveWriter.BlogClient.Clients.TistoryBlogClient.MetaweblogEditPost(String blogId, BlogPost post, Boolean publish)
    위치: OpenLiveWriter.BlogClient.Clients.TistoryBlogClient.EditPost(String blogId, BlogPost post, INewCategoryContext newCategoryContext, Boolean publish)
    위치: OpenLiveWriter.BlogClient.Clients.XmlRpcBlogClient.EditPost(String blogId, BlogPost post, INewCategoryContext newCategoryContext, Boolean publish, String& etag, XmlDocument& remotePost)
    위치: OpenLiveWriter.BlogClient.Blog.EditPost(BlogPost post, INewCategoryContext newCategoryContext, Boolean publish)
    위치: OpenLiveWriter.PostEditor.UpdateWeblogAsyncOperation.DoWork()
    위치: OpenLiveWriter.CoreServices.AsyncOperation.InternalStart()

    최근의 업데이트까지 다 덮어서 쓰고 있는데 종종 저 오류가 뜹니다. 어떻게 수정을 해야할지 모르겠습니다.

개인적인 일과 OS 만드는 과정에서 너무 지식이 부족함을 느끼고.. 한동안 공부만 했다.

이해 안되는 개념은 이해 될때까지 예제와 문서 읽으면서 공부를 하긴 했는데 역시나 OS 만드는 것에 대한 지식이 너무 방대함을 느끼고…좌절(?).

오래된 노트북 책장속에 꼽아 놓고, 가끔 켤 때 마다 보이는 바탕화면에 OS 만들기 폴더를 볼 때 마다 내 자신이 한심해지는 것 같아 더더욱 의도적으로 외면하게 되었다.

그러다가 죽은 노트북 살리면서 생각지도 않는 의욕이 불타 올라 , 다시 시작.


우선 페이징을 설명하기 전에 가상 메모리에 대해서 설명이 필요하다.

가상 메모리 단어에서 어느 정도 무엇을 내포된 의미를 알 수 있듯이 메모리를 가상화 한다는 거다.

?????? 메모리??? 내컴퓨터에 달려있는 램???

그렇다. 이 램을 가상화 한다는 거다. 가상화 라는 단어가 어려울진 모르겠는데 쉽게 내컴퓨터에 2G짜리 램 하나 달려 있는데 OS에서 4G 달려 있는 것처럼 속인다(?)라는 거다. 사기???? 맞다.. 사기치는 거다. 짜임새 있고 논리적으로…. 프로세스(프로그램)며 OS까지 전부 다 개별적으로 4G를 쓸 수 있게 해주는 황금 알을 낳게 해주는 기술이다. (배를 갈라보자…)

그럼 왜 사기 치는 걸까???
(당연하지 않나? 돈이 없어서.. ㅋㅋㅋㅋㅋ)

점점 소프트웨어들의(프로그램,OS) 기능이 커짐에 따라 메모리도 많이 소모하게 되었는데 이게 물리적인 메모리 램은 한정되어 있는 상황에서 서로 메모리 가져오기 전쟁을 벌어야 했기 때문이다.
MS-DOS 시절 한글 띄워 보겠다고 한글 램 상주 프로그램 실행 후 게임을 실행할 때를 생각해 보자… 메모리 부족으로 실행되지 않는다. 그러면 램 상주 프로그램 종료 시키고… 이것저것 최적화 해서 게임 실행 했었던 시절을 떠 올려 보니 이해가 쉬워 진다. 프로그램들은 메모리를 쓰고 싶은데 딴놈이 그놈의 메모리를 차지 하고 있으니 사용자가 간섭해서 종료 시키고 최적화 시켰던 그 시절…(추억이 새록새록하다.)

유한한 메모리 공간이 가상 메모리 기술을 사용한다고 해서 갑자기 없던 메모리가 3차원 우주공간에 생성되어 그 공간을 사용하는 그런 공상 과학적인 그런건 아니다. 앞에서 말했던 것처럼 속이는 거다. 어떻게????

우선 가상메모리는 개별 프로그램 및 OS에게 너에게 주어진 메모리 공간은 4G이다.(난 32bit OS를 목표로 하기 때문에 4G로 표기한다.) 라고 넉넉한(?) 메모리 공간을 제시한다. 그러면 좋아라 하겠지…. 마구마구 메모리 할당하고 쓸것이다. 지지고 볶고 . 어라 저놈도 메모리 크게 잡네?? 나도 잡자 … 마구 마구 할당 하면 그래 버블이 발생한다. 버블이 발생하면? 죽는거지 뭐… (갑자기 옆길로……샜다.)

가상 메모리는 개별 프로그램들에게 메모리 공간 4G와 독립적 메모리 공간을 약속한다. 4G공간은 물론 가상 공간인 것일 테고 독립적 메모리 공간이라 함은 각 프로그램들의 메모리 공간은 서로 접근할 수도 없고 독립적으로 메모리 0번지 ~0xFFFFFFFF 까지 나만의 공간을 만들어 준다는 것이다.
예를 들어 A프로그램이 메모리 0x100000에 어떤 데이터를 써 놨다고 하자. 그게 온라인 커뮤니티 아이디 , 패스워드라고 한다면 B라는 프로그램은 A프로그램이 0x100000 메모리 아이디, 패스워드를 저장해 놓은 걸 알고 있는 상황에서 메모리 0x100000 를 읽어 보면???? 아무것도 없다.  이는 각 프로그램마다 제공된 메모리 공간은 독립적으로 타 프로그램과 공유하지 되지 않는다는 의미인 것이다.

(독립된 가상 메모리는 실제 컴퓨터 메모리상의 주소와 일치 하지 않는다. A프로그램 0x100000 가상 메모리 주소는 실제 메모리 0x100000에 적재되지 않는다. 가상 메모리상의 주소는 실제 메모리 주소가 결정되지 않는 논리적 가상의 주소일 뿐이다. 이렇게 되지 않는다면 A프로그램과 B프로그램이 0x100000을 사용하게 된다면 메모리가 독립적 사용이 불가능 하게 된다. 이는 페이징에서 좀더 설명한다.)

그리고 가상 메모리를 프로그램 별 4G로 준다는 의미는 무엇인가? 분명히 앞서 설명한 바에 의하면 각 프로그램은 실제 램 2G가 설치된 컴퓨터에도 사기친(?) 4G를 제공한다고 했다. 그렇다면 위에서 예를 들었던 A,B 프로그램 두개가 독립적인 메모리 공간으로 4G를 가지고 있으므로 4G X 2 = 8G 라는 공간이 컴퓨터에 발생이 필요 할 텐데 가상 메모리는 물리적 메모리 2G로 어떻게 8G라는 공간을 만들어 놓을까?? (사기는 그럴듯 해야 사기빨이 받는 법이다…)

이런저런 아키텍처를 연구하는 사람들이 가만히 프로그램들을 살펴보니 4G가 공간을 주더라도 0x00000000 ~ 0xFFFFFFFF 메모리 공간에 차곡차곡 메모리를 쌓아 쓰지 않는 점을 밝혀 냈단다. 또한 프로그램 이라는게 4G메모리를 전체 할당해서 사용한다고 해도 메모리를 사용(CPU가 사용 시점)하는 시점에는 전체가 아닌 부분만 사용한다는 패턴을 찾아 냈다.  그러니까 메모리를 4G 전체 할당 한 상태에서 실제 CPU가 사용하는 메모리는 극히 작은 부분만 필요하다는 것이다.

   
image

즉, A,B 프로그램에서 8G를 사용할 경우, 실제 CPU가 사용하는 부분만 메모리에 올리고 나머지 부분은 우리가 흔히 OS사용하면서 보았던 페이징 파일로 디스크에 저장해 놓는다. 즉 실제 컴퓨터 메모리 2G는 A프로그램과 B프로그램 전체의 메모리를 저장하지 않고 페이징 파일로 저장해 놨다가 필요 할 때 실제 컴퓨터 메모리로 필요한 만큼 올리는 것이다. (필요할 때 필요한 만큼 꺼내 쓴다….역시나 실제 메모리에 올려 놓은 데이터가 더이상 쓰지 않거나 당분간 쓰지 않을 것 같을 때는 다시 파일로 보낸다.) 이렇게 실제 메모리와 디스크에 메모리 데이터를 서로 교환 작업함으로써 각 프로세스가 독립된 4G 공간의 메모리를 확보 할수 있게 되는 것이다.


페이징이란 앞서 설명한 가상 메모리를 구현 할 수 있게 만드는 메모리를 관리 기법을 말한다. 위 가상 메모리 설명에서 CPU가 필요로 할 때 페이징 파일에서 실제 메모리로 필요한 만큼 꺼내 쓴다라고 설명했다. 이때 실제 메모리로 페이징 파일에서 데이터를 옮기는 데이터량의 최소 단위를 페이지 말한다. 다시 말하면 메모리의 크기를 페이지 단위로 나눠서 데이터를 이동시킨다 라고 할 수 있다. 여기서 메모리를 페이지 단위로 나눠서 관리하는 기법을 페이징 이라고 말한다고 한다. (메모리를 페이지 단위 쪼개는 작업이라고 볼 수 있다.) 페이지는 2 제곱 값으로 지정 될 수 있으며 보통 4096byte(4kb) 으로 설정된다. (리눅스나 윈도우도 4KB)
메모리를 페이지 단위로 나누는 작업 자체가 페이징이라고 했지만 좀더 심화된 작업이 있다. 위에 가상 메모리 4G 를 구현하기 위해서는 페이징 이라는 작업을 해줘야 내 OS에 4G 가상 메모리 공간을 만들 수 있다. 조금 많이 난해하고 어렵다. 가상 메모리라는 용어하고 페이징이 결합하면서 실제 주소, 가상 주소 단어가 등장하게 된다. 이 단어가 글에서 왕복된 설명이 나오는 순간.. 머리가 글을 읽는 눈을 쫒아 가지 못하고 … 퍼진다. (그래도 진행해 보자….)

각 프로세스별 4G 가상 메모리 공간을 만들기 위해선 가상 메모리 4G 공간을 페이지 단위로 나눈다. 이 나눠진 페이지들을 표로 만들고 각 페이지 마다 번호를 붙여 보면 0부터 1048574 까지 번호가 부여 될 것이다. (4294967295(4G) ÷ 4096(페이지) = 1048575가 나온다. ) 1048575개의 페이지는 1MB 공간을 뜻하는 것이다. 즉 가상 메모리 4G를 구현하기 위해서는 실제 메모리 1MB의 할당이 필요해지며 여기에 가상 메모리 4G를 실제 메모리에 연결하기 위해서 각 페이지 마다 연결 참조 포인트 4Byte를 추가하면 4M 바이트의 공간이 각 프로세스 마다 고정적으로 생긴다는 결혼이다.

image
image

프로세스 마다 4MB 공간을 필요로 하다는 말은 프로세스 마다 고정적인 4MB의 메모리를 사용한다는 말인데 이건 정말 큰 메모리이다. 위 계산은 한 프로그램이 4G를 다 사용 할 때의 계산으로 작은 메모리(100kb 미만 메모리 할당)만 사용하는 프로그램도 4M의 고정적인 메모리를 할당 하고 실행된다.
이에 작은 메모리를 사용하는 프로그램과 많은 메모리를 사용하는 프로그램들의 독립적 메모리 공간과 4G의 가상 메모리를 제공하고 각각의 사용 메모리별 형평성(?), 계산 속도 최적화를 밤낮 연구하다가 방법을 만들어 냈다. (밤낮 연구했는지 그냥 알고 있는 내용을 구현했는지 난 모른다. 똥 싸다가 생각해 냈는지도 모른다. 또는 그냥 어렵게 만들려고 했을지도 모르겠고.. 그냥 이런 방식이 있다는걸 제안했다..)

우선 4바이트를 가진 1024개의 배열을 만든다. 총 크기는 4kb 이다. 이걸 프로그램 실행 때마다 할당 한다. 4M에서 4kb로 1024배로 줄었다. 오~~~~~~~~~~~. 다이어트를 제대로 해 버렸다. 이건 다이어트 수준이 아니라 병수준이다… 흠… 여튼… 4M를 4kb로 줄이는 대신 복잡해 졌다. 뭐든 복잡한게 간단해지면 그 반대 급부로 무언가가 발생한다…(절대량은 변하지 않는다??? ㅋ)

자 , 이 4kb가 어떻게 4G를 공간을 표현하는지 살펴 보자.

우선 4byte 크기로 1024 개의 배열을 만든다. 이 배열의 각 인덱스(요소) 들은 또다른 4byte크기의 배열의 시작 주소를 가르킨다. 어렵지~~~ ㅋㅋㅋㅋㅋ… 1024개의 배열이 있는데 배열의 각 인덱스는 4byte크기의 1024 배열을 가지고 있다 라고 표현해도 어려울 것이다. 이건 그림으로…

image
1024개의 배열의 각 인덱스는 1024개의 배열의 첫 시작 주소를 가지고 있다. 1024의 배열의 크기가 4096 이고 각 배열 인덱스가 4byte 1024 배열을 가지고 있으므로 4096 + (1024 x 4096) 은??? 약 4Mb이다. 기존 4MB 고정 보다 4G 전체 할당 했을 시 보다 4kb 더 많긴 하지만 이렇게 하면 1Mb의 작은 메모리를 할당하는 프로그램들은 4kb + 4kb 즉 8kb만 프로그램 할당 되므로 뭐… 나름 괜찮다고 볼수 있다. 
왜 8kb 냐고??? 음… 프로그램 실행때 기본 생성되는 4kb와 첫번째 배열 인덱스 하나는 총 4Mb까지의 메모리를 가르킨다. 주소를 가르키는 4byte가 1024개 있으므로 4MB이다.
즉 첫번째 배열의 각각의 인덱스는 메모리 주소 4MB 제곱으로 메모리 주소를 가르킨다라고 할 수 있다.


이제 4G 주소 공간 표현을 개념적으로 알아봤으니 실제로는 어떻게 계산되는지를 알아보자.

주소를 나타내는 포인터는 4바이트이다. (당연하지 않겠나… 4G까지 가르킬려면 4바이트가 필요하다) 이 주소를 32비트로 표현해서 비트 23번째 비트부터 32번째 비트를 첫번째 배열 인덱스값. 13번째 부터 22번째 비트까지를 첫번째 배열이 가르키는 배열의 인덱스값으로 구분한다. 그리고 나머지 1번째 부터 12번째 비트는 오프셋 값으로 구분하면 된다.

image
이해를 돕기 위해 그림을 그렸다. 위 그림은 가상 주소 0x1234가 어떻게 실제 메모리를 가르키게 되는지를 표현한 그림이다.
1. 23bit~32bit가 0 이므로 첫번째 배열(주황색) 인덱스 0을 가르킨다.
2. 첫번째 인덱스 0은 두번째 배열(연두색)의 주소를 가르키고 있다.
3. 13bit~22bit는 1 번째 인덱스를 가르킨다.
4. 그러면 첫번째 배열 인덱스0이 가르키는 두번째 배열 1번째 인덱스를 가르킨다고 볼수 있다.
5. 두번째 배열 1번째 인덱스는 실제 메모리 주소를 가르키고 있다. 어느 주소인지는 모른다. 할당 할 당시에 주소이기 때문에 임의의 주소일 것이다. 이 임의의 주소에서 564번째를 가르킨다.
실제 메모리도 4096 단위로 나눠져 있는 주소 단위이다. 두번째 배열 1이 가르키고 있는 주소는 4096 단위로 정렬된 주소이므로 이 주소에서 564 오프셋 만큼 떨어진 지점을 가르키고 있다.


이 가상 주소 변환 작업은 고맙게도 CPU가 해준다고 한다. 아니 CPU안에 있는 MMU 라는 놈이 해준단다. 그리고 위 첫번째 배열 이니 두번째 배열이니 하는 배열도 각자 용어가 따로 존재한다. 
난 이해를 돋기 위해 배열 이라고 사용했다. (뭐…..프로그램상으로 배열로 처리…) 이는 배열이 아닌 테이블이라고 불린다. 또한 첫번째 배열이라고 칭했던건 Page Directory Entry(PDE)라고 하며 첫번째 배열 PDE가 가르키는 배열(테이블)은 Page Table Entry(PTE) 라고 불리고 있다.
각 프로그램마다 첫번째 배열. 즉 PDE 4kb가 할당되어져 있다. 이를 CPU가 어느 프로그램을 선택해서 실행이라는 나쁜(?)짓을 할려고 할 때 이 PDE를 CPU에 등록한다. 즉 CPU가 작업 하는 프로그램을 변경하는 시점(컨텍스트 스위칭 이라고 하는데…..후에….)에 PDE 테이블 주소만 설정해 주면 알아서 다 해 준다.




이로써 개념 설명은 끝났다.

지금까지 바람 OS는 보호모드로 진입후 키보드 처리 하는 단계까지 구현되어 있는데 이제 가상 메모리 처리를 함으로써 명실상부한 32비트 OS로 거듭날 예정이다. 물론 구현에서 제대로 된 동작까지는 ……휴…갈길이 멀다… 어떤일이 펼쳐 질지는… 또 한 2년 잠수할지도….





그래….

내가 미친놈이다…

팔랑귀라서.. 회사 동료가 SONY 노트북 좋고 디자인도 이쁘다라는 말에 넘어가 2013년에 SONY 노트북을 거금을 들여서 구매했다.

뭐 그땐 그런대로 쓸만 했었지.. 다만, 키보드 치다 보면 자판 뜨거워 지는건 덤…. 여튼 이런저런 내 불만을 수용할 만한 제품이 있더라도 비쌀것이고 그냥 노트북 본연의 기능만 되면 된다는 생각에 잘 사용했다.

그런데 어느날 갑자기 윈도우 화면에 Windows 10 업그레이드 팝업 창이 뜨길래 마이크로소프트의 신작 소프트웨어 설치는 베타 테스터가 된다라는 생각하에 과감히 닫기.. 닫기.. 닫기.

근데 이게 반복 되니 귀찮아 졌다. 또 Windows 10 평판이 나쁜 편도 아니고 … 해서….업그레이드 동의…

그 때부터이다. 지옥이 시작된게…. 너무 느린 부팅 속도며, CPU는 3.0Ghz를 넘어가고 디스크는 100%로에 노트북 팬은 죽어라 돌아가며 가슴에 열불이 난 나의 거친 숨결과 함께 주위를 더 데워 주었다.
그래서 SONY 사이트로 접속… 헉… SONY가 노트북 사업을 접었네??? 이게 뭐야…


“팔아먹고 튀었다.”



그리고 Windows 10의 해당 제품의 지원은 안된다 라는 의미의 문구들.

고가에 산 노트북이 갑자기 폐품으로 떨어지는 순간이었다.

아…씨…………………………………………………………SONY 망해라…………………………


여튼 사용은 해야 할것이 아닌가? 그래 어떻게 해서든 쓸만하게는 만들어야 한다.

VAIO 컨트롤이니 뭐니 잡다한 쓰레기 SONY의 프로그램들부터 걷어 냈다. 아 놔~ 개떡같은 SONY. 쓰레기도 한 무더기로 쌓아났네…

그리고 SONY 사이트에 최소한의 양심이 있는지 남겨놓은 제품 최종 Windows 7 용 드라이버들을 각각 다운받아 설치했다. 어차피 Windows 10 에서 호환이 될테니….

그래도 나아지는점이 없었다…. 그렇게 노트북은 고이 접어 얼마 꽂혀 있지 않는 책들 사이에 영면(?)에 들었다.


VPCCB37FK의 사양

vpccb37fk사양





VPCCB37FK 의 검색으로 알아낸 사양

CPU : I7-2640M (2세대. 제조사에서는 램 8G가 최대라고 하나 CPU에서는 16G까지 확장 가능하다고한다)
메인보드 : HM65 Express (이젠 인텔에서 조차 지원안해서 드라이버도 없다. intel 6시리즈)
그래픽카드 : Intel HD 3000, AMD 6630M (HD3000 드라이버는 인텔에서 윈도우10 드라이버가 없다)


*******************************************************************************

VPCCB37FK 의 Windows 10에서 문제점 및 조치사항.

1. 부팅 속도가 현저히 늦다. 


  - Windows 7 기준으로 늦다. Windows 10이 아무리 무거워도…이리 늦을 수 있나? Windows 10 로고 화면 뜨고 데이터 읽는 표시인 원이 돌아가는 화면에서 검은 화면으로 전환 되고 한 20~30초 뒤에 로그인 창이 보인다. 
  - Windows10을 Windows 7에서 업그레이드해서 발생한 상황일것 같아 포맷하고 Windows 10을 설치했지만 같은 증상임.
  - 디스크 액세스에 따른 지연 현상으로 판단하여 SSD 로 바꾸었으나 같은 증상임.
  - 그래픽 카드 충돌로 인한 검은 화면으로 전환 될수 있다는 문제 보고를 읽었다. *드라이버를 최신으로 변경했지만 여전히 같은 현상.

  - 오늘도 부팅 시 검은 화면으로 전환 되었다가 한참 뒤에 로그인 창이 뜨는 문제에 대해서 깊이 뜯어보고 검색해 보았다. 보통 검은 화면으로 전환되었다가 한참뒤에 로그인창이 뜨는 문제는 그래픽 드라이버의 충돌 문제라고 한다. 그래.. 이말이 일리가 있는게 그래픽 드라이버를 설치 않할 때는 부팅이 빠르게 진행된다. 그래픽 드라이버의 문제로 판단하여, VPCCB37FK에 두개 달려있는 그래픽 드라이버를 하나씩 삭제해보았다. 그래도 똑같다. ..

역시나 이 문제는 고쳐지기 힘드나 보다라고 생각하다…
https://answers.microsoft.com/en-us/insider/forum/all/windows-10-black-screen-before-login-how-to-solve/c0806491-c3ac-440f-a2f5-db4b43d8adf7 이 주소의

Here is the fix for those with AMD and Intel HD 3000 video drivers and Windows 10
May work other configurations. I only fixed 3 different systems with similar configs.
Issue happens because the 2 video drivers don't play nice together. These steps fix that.
Also it is highly recommended to install the latest system BIOS.
Obtain DDU http://www.wagnardmobile.com/DDU/dow...0v16.1.0.1.exe. This removes the video drivers.
Obtain UnifL drivers https://sourceforge.net/projects/les...0.exe/download
1. Run DDU and remove AMD drivers, after restart remove Intel Drivers
Let DDU disable Windows automatic driver installs
2. Install Catalyst 16.2.1 UnifL This will give you a set of drivers.
3. Run UnifL-Automatic-Installation Assistant (as admin). This should install the Intel drivers
4. Run setup.exe from the AMD folder. Install ONLY AMD Display driver (no CCC)
Black screen delay is gone.

글을 보게 되었다… 오……

HD3000 인텔 그래픽카드와 AMD 카드.. 나랑 유사하다..

그래서 저 문구에서 하라는대로 했다.

ㄱ. Display Driver Uninstaller 다운로드. Catalyst_16.2.1_UnifL_V1.0 다운로드.
ㄴ. 안전모드 부팅 후 Display Driver Uninstaller 실행
ㄷ. 재부팅 후 Catalyst_16.2.1_Unifl_V1.0 실행. 재부팅

오~~~~~~~~~~~~~~~~~~~

부팅시 검은 화면에서 한참 대기 하는 문제가 사라졌다!!!!!!!!!!!!!

와우~

이걸로 문제해결!!!

이제 디스크 100% 문제만 해결하면~~~~~~ ㅎㅎㅎ

죽은 자식 살아난다..

그리고 SONY는 죽어라 씨발.



--------

       



2. 디스크 100% .

         
  - 바탕화면으로 전환되고 나서 팬이 요란하게 돌아가며 작업관리자 성능 부분을 보면 디스크가 100을 유지하고 있다. Windows 고유 기능 기본 서비스 기능이 디스크를 사용하고 있긴 하다.
그런데 100% 가 말이되나??? 이러다가 30분 정도 아무것도 안하고 두면 떨어진다.  이때부터 노트북을 어느정도 사용할 수 있다. SATA Controller Driver의 문제 인것으로 우선은 판단한다. 또는 하드디스크 문제(?)

  - 디스크를 SSD로 교체함. 그리고 기존 HDD는 기존에 달려있는 DVD 떼어 버리고 그곳에 D드라이브로 추가해서 달았음.
C드라이브 (SSD)에 한해서는 디스크 100% 발생안함. 그러나 D드라이브 엑세스 시점에도 디스크 100% 발생함. D드라이브 엑세스 시점에서는 Windows 버벅임. (폴더 보이거나 파일 리스트 보거나 등등)

  - SATA Controller Driver를 그나마 최신것으로 변경함. 장치 관리자에서 Intel Mobile Express Chipset SATA AHCI Controller 속성의 하드웨어 ID를 알아냄. PCI\VEN_8086&DEV_1C03&SUBSYS_9081104D 이 걸 가지고 구글에서 검색해서 2015-05-22일자 12.8.20.1002 드라이버를 설치함. (검색 도중 HP사이트에서 이 드라이버를 다운받았음… SONY 개새뀌.) 그러나 현상은 개선되지 않음.

2019.03.25

  하드디스크를 교체 하니 디스크 100% 현상이 사라졌다….

그렇다 ㅠㅠ

        

                                




불법 시디키를 썼던지 어떤 이유에 의해서 윈도우 10 시디키 변경을 하게 될 경우를 위하여 이곳에 기록한다.


1. 키보드에서 Window 키 + X 키를 누른 후 A 를 눌러  관리자 권한의 Windows Power Shell을 실행한다.


2. slmgr /cpky 을 입력하여 레지스트리에서 현재 라이센스 키를 삭제한다.


3. slmgr /upk 을 입력하여 컴퓨터에서 라이센스 키를 삭제한다.


4. slmgr /ipk [제품키] 를 입력하여 라이센스를 등록한다.


5. slmgr /dli 를 입력하여 라이센스 상태를 확인한다.


6. slmgr /xpr 을 입력하여 라이센스 유효 기간을 확인한다.







이게… 그러니까




Open Live Writer 공개 시점 이후로

티스토리에서 게시물 읽기 API를 변경한것 같다.

게시물 읽기에서 오류가 생기네..




수정해서 올려 놓는다.





사용방법 :

압축 풀어서 Open Live Writer 폴더에 복사.


patch_2018.06.25.zip



주위의 지인이 랜섬웨어에 감염되어 자료를 전부 날렸다라는 말을 들었다.

그래서 왠지 모를 불안감에 나도 감염되어 있을 것 같아서 온갖 다양한 무료 백신들 설치와 함께 검사를

시도했었는데 다행이 나의 콤퓨타는 무사함을 확인 할 수 있었다.

그래도 언젠가(?) 어떻게 랜섬웨어에 노출 될 수도 있을거라 생각되어

(모두 이런 불안감에 설치할 것이다…. 바이러스는 예방이 중요한거니..)






   

안랩 안티랜섬웨어 툴을 설치했다.

   

그 후 이틀 뒤… 윈도우가 이상해졌다.

프로그램 실행도 늦고 어떤 프로그램은 실행 조차 되지 않는 상황에 이르렀다.

바이러스 걸린 걸로 알고 윈도우즈를 발칵 뒤집어 놨다.

보호 모드 , 프로그램 삭제, 레지스트리 삭제 … 휴~~~



생각만 해도 끔찍하다…

할 수 있는 방법은 다 했다.


갖은 삽질끝에 안티랜섬웨어 툴 이 놈이 문제..


아~~~~~~~~~~~~~ 그 깊은 빡침이란….




 

OpenLiveWriter-0.6.2.zip


Open Live Writer 올리고 잊고 지내다

우연히 블로그를 들렀는데 .. 댓글에 내가 만들어 올린 Open Live Writer가 구글 블로그에

접속이 안된다는 글을 보았다.


차일 피일 미루다가 수정해서 올린다..


난… 게으르니까..이해 바랍니다.



# 수정 사항

- 구글 블로그 지원.



* 첨부 파일 적용 방법.

http://openlivewriter.org 사이트에서 영문 오리지널 open live writer를 설치했다면

C:\사용자\계정ID\AppData\Local\OpenLiveWriter\app-0.6.2 폴더에 첨부 된 압축 파일을 복사 하면 됩니다.




OpenLiveWriter-0.6.2.zip

사용법#1 에서는 티스토리에서 Open Live Writer를 사용하기 위한 준비를 했다. 이제는 Open Live Writer 설치 및 환경설정을 설명한다. (간단하다)

1. 이 블로그에 첨부된 OpenLiveWriter-0.6.2.zip 압축 파일을 다운 받는다.

2. 압축 받은 파일을 적당한 폴더에 압축을 푼다.

3. OpenLiveWriter.exe를 실행한다.

1


[기타 서비스]를 선택 한 후 [다음] 버튼을 클릭한다.

2


블로그 웹 주소 : 블로그 웹 주소를 입력한다.

사용자 이름 : 티스토리 아이디를 입력한다.

비밀번호 : 티스토리 비밀번호를 입력한다.

암호 저장 :  암호 저장을 꼭 선택한다. (※안 하면.. 계정이 잠길 수도 있다)

모두 입력 후 [다음] 을 선택한다.

3


[블로그 유형 선택] 에서 [Tistory OAuth]를 선택한다.


4


위에 빨간 상자 부분이 제일 중요한 부분이다.

https://www.tistory.com/oauth/authorize?client_id=[메모장에 적어 놓은 client_id]&redirect_uri=http://[클라이언트 등록할때 Callback 경로]&response_type=token


위에서 [ … ] 부분을 채워 넣는다. 제대로 입력된 예시는 다음과 같다.


https://www.tistory.com/oauth/authorize?client_id=ABCDEFGHIJKLMNOPQRSTUVWXYZ&redirect_uri=http://www.manggong.org&response_type=token




모두 입력 되었다면 [다음] 버튼을 선택한다.


이렇게 해서 Open Live writer 적용 방법을 마친다.

그렇다… 여기에 더 내 시간을 투자하기 싫어 진거다..

여기에 묶여서 2주라는 시간을 버렸다 ㅠㅠ








* 개선사항

- 블로그 최신 게시물이 10개 이상 안되는 문제

- Open Live Writer에 버그가 많다. (Windows Live Writer에서는 이렇지 않았는데..흠)

- 기타…

  1. ms2034 2018.03.09 14:52

    오리지날 영문판은 구글블로그는 잘 되는데 이건 티스토리는 물론 구글 블로그도 안되네요 시간나시면 테스트해보시고 한번 더 올려주세요

    • 얼땅불땅 2018.04.04 19:18 신고

      언제 이 글을 보실지 모르겠지만, 구글 블로그 안되는 부분 수정해서 다시 올렸습니다.

  2. 2018.11.06 13:44

    비밀댓글입니다

    • 얼땅불땅 2018.11.13 15:31 신고

      사진 보내 주시면... 도움이 될것 같은데요...

      로그인 허용 기기

      등록이 되어있는지요???

      답변 주시면... 최대한 도와 드리겠습니다.

      (저는 지금도 open live writer를 사용하고 있습니다.)

  3. 2018.11.15 20:55

    비밀댓글입니다

    • 얼땅불땅 2018.11.16 09:38 신고

      티스토리가 웹 개편 되면서 페이지가 바뀐것 같습니다. 제가 확인 후 다시 댓글 쓸께요

    • 얼땅불땅 2018.11.20 14:32 신고

      https://www.tistory.com/oauth/authorize?client_id=[id]&redirect_uri=http://id.tistory.com&response_type=token

      이 문장에서 client_id, redirect_url을 정확히 입력하셨다는 전제하에서... 혹시 익스플로어나 크롬 에서 티스토리 로그인 하실때 비밀번호 변경 하라는 문구가 나오지 않나요???

      웹에서 티스토리 로그인 하면 비밀번호 변경 하라는 문구가 나온다면 , 웹에서 로그인 하신후에 open live writer 블로그 추가를 해 보세요. (현재 그 문구 관련해서 open live writer 로그인에 문제가 있습니다. )

      그리고 로그인 허용 기기 관련해서는 티스토리 계정관리 에서 로그인 허용 기기 부분에 모든 기기로 선택하셨으면 어떤 문구도 뜨지 않습니다. (로그인 허용 기기 창이 뜨지 않는다는 의미입니다.) 위 블로그 내용은 "로그인 허용기기 메뉴로 들어가서 모든 기기 허용으로 선택하세요" 라는 내용입니다.


      또한, client_id 라는 용어가 티스토리가 개편되면서 app id 라는 문구로 바뀌었습니다. http://manggong.org/115?category=674426 블로그 내용을 3주전에 새이미지로 변경했는데, 다시 한번만 이 부분 확인 부탁드립니다.

  4. 2018.11.27 18:41

    비밀댓글입니다

  5. nittaku 2019.01.22 23:13 신고

    선생님 오픈라이브라이터 티스토리버전을 잘 쓰고 있습니다...
    1년간 잘 사용하다가 오늘 19-01-22 게시물 안올라가더니, 웹로그인해도 에러가 발생합니다.
    혹시 확인하시면 꼭! 댓글 부탁드리겠습니다.

    글 게시를 누르면

    첫번째 오류
    System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
    위치: OpenLiveWriter.BlogClient.Clients.TistoryBlogClient.MetaweblogNewPost(String blogId, BlogPost post, Boolean publish)
    위치:

    2번째 오류(이게 자주 나타납니다
    2019년 1월 22일 화요일 오후 11:13:41

    Version: 0.6.0.2

    OS Version: Microsoft Windows NT 6.2.9200.0
    Runtime version: 4.0.30319.42000
    Shutdown started: False
    Program: "C:\Users\is2js\Desktop\openlivewirter\OpenLiveWriter.exe"

    Memory Load: 30%
    Total Physical: 16217 MB
    Available Physical: 11326 MB
    Total Page File: 18649 MB
    Available Page File: 12677 MB
    Total Virtual: 2047 MB
    Available Virtual: 1335 MB
    Available Extented Virtual: 0 MB

    오류 발생
    응용 프로그램 내에서 오류가 발생했습니다.


    OpenLiveWriter.Extensibility.BlogClient.BlogClientMethodUnsupportedException: 지원되지 않는 메서드 - Login exception 메서드가 블로그 서비스에서 지원되지 않습니다.
    위치: OpenLiveWriter.BlogClient.Clients.TistoryBlogClient.VerifyAndRefreshCredentials(TistoryCredential tc)
    위치: OpenLiveWriter.BlogClient.Clients.TistoryBlogClient.VerifyCredentials(TransientCredentials tc)
    위치: OpenLiveWriter.BlogClient.Clients.TistoryBlogClient.Login()
    위치: OpenLiveWriter.BlogClient.BlogClientBase.VerifyCredentials()
    위치: OpenLiveWriter.PostEditor.BlogPostEditingManager.PostToWeblog(Boolean publish)
    위치: OpenLiveWriter.PostEditor.BlogPostEditingManager.Publish()
    위치: OpenLiveWriter.PostEditor.PostEditorMainControl.commandPostAndPublish_Execute(Object sender, EventArgs e)
    위치: OpenLiveWriter.ApplicationFramework.Command.RaiseEvent(Object eventKey, EventArgs e)
    위치: OpenLiveWriter.ApplicationFramework.Command.OnExecute(EventArgs e)

    • nittaku 2019.01.23 09:05 신고

      정확히는,,
      응용프로그램 오류가 계속 떠서
      웹로그인 비번재설정이 안떴는데도 계속 오류가 났고,

      블로그 계정 편집하기에서
      client_id와 url을 입력해주어도 연결이 안되네요.

      로그인exception()메서드를 연결할수 없다고 에러가 게속뜹니다 ㅠ

    • 얼땅불땅 2019.01.31 15:39 신고


      해당 문제 수정해서

      https://manggong.org/138?category=674426

      블로그에 올렸습니다.

  6. 익명 2019.01.26 00:27

    제가 해외에 나와 있는 관계로(중국) 티스토리에 접속이 어려워 익명으로 글 남깁니다

    Open live writer 실행 오류 관련하여
    문제점을 파악하도록 하겠습니다. 그런데 중국에서 한국으로 복귀하고 나서 가능 할 것 같습니다.
    (Open live writer로 티스토리 이용하시는 분이 있다는게 개인적으로 놀랍네요^^)

    A.S.A.P

+ Recent posts