VirtualBox 오류

|

툴바의 설정 클릭 시 CO_E_NOTINITIALIZED (0x800401F0)

파일-환경설정 클릭 시 USB 하위 시스템에 접근할 수 없습니다.
 
파일-환경설정 변경 후 저장 시 전역 VirtualBox 속성을 지정할 수 없습니다.

VirtualBox 종료 시 VirtualBox.exe의 작동이 중지되었습니다.

이 모든 오류가 Office 설치 시 변경된 IME 때문입니다.
이 IME만 기본 IME로 변경하면 이상 없이 잘 동작하게 됩니다.
제어판-시계, 언어 및 국가별 옵션-키보드 또는 기타 입력 방법 선택
 
키보드 변경 클릭

기본 입력 언어에 Microsoft Office IME 2007 인것을 변경해야 하는데
설치된 서비스에 Microsoft Office IME 2007 밖에 없다면 추가해야 합니다. 
추가를 클릭합니다.
 
거의 밑에 한국어(대한민국)-키보드-Microsoft 한글 입력기를 선택합니다.
 
Microsoft 한글 입력기를 추가한 뒤
기본 입력 언어를 Microsoft Office IME 2007 을 Microsoft 한글 입력기 로 변경합니다.

확인을 눌러 마친 뒤 VirtualBox를 이용하면 무난하게 이용 하실 수 있습니다.

And

외장 하드를 윈도우 설치용으로 만들기

|

필수로 필요한 것은 2가지 입니다.
Grub와 Grubinst입니다.

우선 외장 하드가 Grub를 실행할 수 있는 상태로 만들기 위하여
grubinst_gui.exe를 실행합니다.
  
해당 Disk를 선택합니다. 저같은 경우에는 3번째(0이 첫번째) 하드이네요.
그 후 Part List 우측의 Refresh를 클릭합니다.
 
저는 이미 구성을 해놨기 때문에 여러개의 파티션이 보이고 있습니다.
가장 첫번째의 Whole disk (MBR) 을 선택합니다.
MBR이 부팅 시작 시 맨 처음 읽히는 부분입니다.
 
그리고 Don’t search floppy 만 선택한 뒤에 Install을 클릭하면
Grub로 부팅이 이루어 지게 되도록 설정한 것입니다.
Grub는 부팅 유틸이라고 보시면 됩니다.

이제 Grub를 가장 첫번째 파티션에 풀어 놓도록 하겠습니다.
grldr  grub.exe   menu.lst
이 세 파일이 존재하는데 실제 웹사이트에서 받으면
더 많은 파일이 존재합니다. 하지만 이 파일만 가지고 처리가 가능하기 때문에
이 세가지 파일만 이용하도록 하겠습니다.
실제론 menu.lst 파일만 변경합니다.

우선 필요한 윈도우 갯수 만큼의 파티션을 만듭니다.
저 같은 경우에는 논리 파티션으로 만들어 놨습니다.
이제 UltraISO 같은 ISO 편집 툴을 이용하여
윈도우 이미지를 해당 파티션으로 복사합니다.
그냥 윈도우의 복사 기능을 선택하여 설치할 경우에
제대로 설치 되지 않을 수 있습니다.

복사를 한 이후엔 menu.lst파일을 편집하여 맞추어 주셔야 합니다.
menu.lst 파일을 편집 툴을 이용하여 열면 다음과 같은 내용이 있습니다.
이 내용은 제가 쓰고 있는 내용입니다.
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color cyan/blue white/blue
timeout 10
default 0

title Microsoft Vista Enterprise K with Service Pack 1 x86
find (hd0,4)/bootmgr
chainloader (hd0,4)/bootmgr

title Microsoft Vista Enterprise K with Service Pack 1 x64
find (hd0,5)/bootmgr
chainloader (hd0,5)/bootmgr

title Microsoft Server 2008 x86
find (hd0,6)/bootmgr
chainloader (hd0,6)/bootmgr

title Microsoft Server 2008 x64
find (hd0,7)/bootmgr
chainloader (hd0,7)/bootmgr

title Microsoft Windows 7 beta x86
find (hd0,8)/bootmgr
chainloader (hd0,8)/bootmgr

title Microsoft Windows 7 beta x64
find (hd0,9)/bootmgr
chainloader (hd0,9)/bootmgr

복잡해 보이지만 실제로는 쉽습니다.
처음에 #으로 시작하는 것들은 주석입니다.
color cyan/blue white/blue
timeout 10
default 0

그 뒤에 5번째 줄의 내용은 보여지는 색상을 지정하는 것입니다.
timeout은 변경하지 않으면 기본 설정으로 실행 됩니다.
default는 처음에 지정될 것입니다.
저는 10초 동안 입력이 없으면 맨 처음인 Vista Enterprise x86이 설치되게 해놨습니다.
title Microsoft Vista Enterprise K with Service Pack 1 x86
find (hd0,4)/bootmgr
chainloader (hd0,4)/bootmgr

이제 그 뒤의 내용이 중요합니다.
title은 보여지게 될 내용입니다. 부팅과 관련된 의미로 적어 넣는 것이 좋습니다.
find 는 다음파일이 있는지 검사를 합니다.
만약 없다면 다시 메뉴로 돌아오게 됩니다.
chainloader는 해당 파일을 실행(?) 한다고 보시면 됩니다.
find와  chainloader의 (hd0,4) 의 의미는 첫 번째(0이 첫번째입니다.) 하드의
다섯번째(역시 0이 첫번째이므로 4가 다섯번째를 의미합니다.) 파티션을 의미하는 것입니다.
위의 grubinst 설치에서는 hd2였지만 여기서 hd0으로 작성한 이유는
부팅시 F12(저의 경우입니다.)를 누르면 원하는 부팅 매체를 선택할 수 있습니다.
이 때 Usb 스토리지 를 선택하면 USB 외장 메모리 or 하드 가 첫번째로 선택 됩니다.
그렇게 때문에 여기서는 hd2가 아닌 hd0으로 작성합니다.
파티션 값은
주 파티션은 순서대로 0, 1, 2, 3 이 되며 
논리 파티션을 4 부터 순서대로 부여됩니다.
만약 주 파티션이 0만 있다 해도 논리 파티션은 4부터 시작됩니다.
저는 논리 파티션에 모두 몰아 놨습니다.
왜 이렇게 했는지는 다음 글을 보면 알 수 있습니다.
bootmgr는 vista, server 2008, windows7은 모두 동일한 파일로 부터 시작 됩니다.
만약 xp, server 2003 등의 하위 버전 윈도우의 경우에는
제가 아직 테스트 하지 않아서 잘 모르겠습니다.
아마 Dos 부팅 하도록 유도한 뒤에 setup.exe를 직접 실행하면 가능하지 않을까 합니다.

title , find , chainloader 를 필요한 만큼 작성하시면 됩니다.

이렇게 menu.lst 파일은 수정한 뒤에 재부팅 시 USB로 부팅 매체를 선택하여 부팅하면
윈도우 설치로 넘어가게 됩니다.

이제 위에서 설명하지 않은 제가 논리 파티션을 이용한 이유입니다.
외장 하드의 특성상 뺐다 꼽았다를 여러번 수행하게 됩니다.
이때마다 자동실행이 시작되어 윈도우 설치를 할지 여부를 물어보게 됩니다.
저같은 경우는 6개의 이미지가 있기 때문에 6번 물어보게 됩니다.
이렇게 물어보는 것을 없애기 위하여 자동실행을 막아야 하는데
내 PC의 자동실행은 막을 수 있어도 다른 사람 PC 까지 막을 수는 없습니다.
( 외장 하드로 데이터를 넘겨줄 경우 )
그렇기 때문에 원천적으로 실행을 막기 위해서는 파티션을 숨겨야 합니다.
숨기는 방법으로는 MBRWiz를 이용하면 숨길 수 있습니다.
우선 다운받은 MBRWiz를 풀고 cmd(혹은 command)를 실행합니다.
그런 뒤에 MBRWiz 경로로 이동합니다.
MBRWiz.exe /list
 
명령을 입력하면 현재 디스크 별 파티션의 내용이 보입니다.
저는 논리 파티션로 만들어 놨기 때문에 Disk: 2에 파티션 0과 파티션 1에 Extend로 보이지만
만약 주 파티션으로 만들었다면 Disk: 0 처럼 여러개로 보이게 됩니다.
파티션 1이 확장 파티션으로 논리 파티션의 정보를 가지고 있는 파티션이 되며
이 확장 파티션을 숨기게 되면 논리 파티션 전체가 숨겨지게 됩니다.
이제 숨기도록 하겠습니다.
우선 숨기기 전에 원래 파티션 Type값을 기억해야 합니다.
저의 경우엔 0Fh입니다. ( h는 16진수를 의미합니다. )
그래야 나중에 복원한 뒤 설치가 가능하게 됩니다. ( 숨겨진 상태에선 설치가 되지 않습니다. )
MBRWiz.exe /disk=2 /part=1 /type=12h
 
명령을 수행하면 파티션 타임을 변경할지 물어봅니다. Y를 눌러 변경하도록 합니다.
변경 후에 다시 MBRWiz.exe /list 명령을 수행하면
 
해당 파티션 타입이 변경된 것을 볼 수 있습니다.
이 파티션은 접근 할 수 없는 파티션으로 삭제 및 수정등의 모든 행동이 불가능해 집니다.
위에서도 언급 했듯이 이 상태로 윈도우 설치를 진행하게 되면
설치 중 윈도우 하드 디스크 선택에서 디스크 드라이버를 넣어달라고 합니다.
이는 파티션 정보가 윈도우가 인식할 수 없는 타입이기 때문에 나오는 것으로
우리는 이런 드라이버가 없기 때문에 설치에 돌입하기 전에 원복을 해야 합니다.
복구는 같은 방법으로
MBRWiz.exe /disk=2 /part=1 /type=0Fh
이렇게 하면 됩니다. ( 저는 확장 파티션이어서 0Fh입니다. )
참고로 NTFS는 07h이며 FAT32는 0Ch, FAT는 0Eh 입니다.
( 이 값이 운영체제 혹은 다른 여건에 의하여 상이할 수 있습니다.
철저한 현제 저의 운영체제에서의 값 입니다. )

And

1초 값

|

Date 타입에서 정수는 날짜 의미
소수점은 시간 의미

정수 1 차이가 날짜 하루 차이
1일 = 24시간
1시간 = 60분
1분 = 60초
1초 = 1 / 60 / 60 / 24
= 1.1574074074074074074074074074074e-5
= 0.000011574074074074074074074074074074

And

소스 버전 변경하기

|

변경 방법
image 
원하는 파일에서 우클릭하여 Update를 선택합니다.
image  
Head : 가장 최신 버전을 가져옵니다.
Preview : 현재 로컬 파일 버전의 이전버전을 가져옵니다.
숫자 : 해당 버전으로 변경합니다.
         만약 16 버전으로 되돌리고 싶은 경우엔 16을 직접 입력하면 됩니다.

만약 SVN이 직접 변경하기 어려운 경우 ( 변경해야 하는 부분이 수정중인 경우 )
다음과 같이 표시됩니다.

<<<<<<< .mine
			// 3 1
=======
			// 2
>>>>>>> .r16

이렇게 나오며 위의 부분은 현재 수정중인 부분
아래는 변경해야 할 부분이 나옵니다. 이 경우엔 사용자가 지정해 줘야 합니다.
image 
해당 파일은 ! 표시가 되며 해당 파일에서 우클릭을 하면 Resolve라는 메뉴가 생기고
그 안에서 결정을 해주면 됩니다.
Resolve Conflict : 현재 보이는 대로 나둡니다.
Using Working copy file : Resolve Conflict 와 동일한 작업으로 보입니다.
Using Original file : 로컬 버전으로 되돌립니다.
Using My File : 수정하던 것을 유지합니다.
Using Their file : Update하려는 버전으로 변경합니다.

버전을 확인하는 방법
원하는 파일에서 우클릭 한뒤 View History 를 선택하면 됩니다.
image 
만약 이곳에서 보이지 않는 14같은 버전을 선택하면 그 아래의 9가 선택 됩니다.
( 실제 14버전은 존재하지만 그 버전 때에 해당 파일의 변경이 9에서 없었던 겁니다. )
만약 없는 버전을 선택한다면 다음과 같은 에러를 보입니다.
image

And

Branch &amp; Merge

|

Branch
image 
솔루션에서 우클릭하여 Subversion –> Branch Solution 선택
image 
기본적으로 trunk 상위 경로에 branches 경로로 생성됩니다.
image 
image 
image 
인증까지 마치면 Branches가 완료 됩니다.

이제 Branch 소스를 가져옵니다.
보기(V)->Repository Explorer 실행
image 
image 
인증을 합니다.
image 
왼쪽 창에 branches가 생긴 것을 확인할 수 있습니다.
image 
Repository Explorer안의 툴바 첫번째 하트 모양의 아이콘을 클릭합니다.
image 
경로를 지정하고 OK를 하여 해당 소스를 받도록 합니다.
받은 솔루션을 열면 Branch가 완료된 것입니다.

이제 Merge를 하기 위해서 우선 소스를 수정해보도록 하겠습니다.
Form1.cs 의 소스를 수정하도록 해보겠습니다.

public Form1()
{
	InitializeComponent();
}

기본 소스를 다음과 같이 변경 하도록 하겠습니다.
public Form1()
{
	InitializeComponent();
	this.Load += new EventHandler(Form1_Load);
}

private void Form1_Load(object sender, EventArgs e)
{
	this.Text = "Merge Test";
}

이제 변경한 소스가 제대로 동작하는지 확인을 합니다.
이제 변경한 파일을 Commit 합니다.

이제 Merge를 하도록 하겠습니다.
다시 trunk 솔루션을 열도록 하겠습니다.
솔루션에서 우클릭 Subversion->Merge Solution 선택
image 
Perform pre-merge best practices check 체크 해제 합니다. Next
image 
Select 를 눌러 Branches 경로로 설정합니다.
image
인증을 한 후
 image
OK 후 Finish 선택
image 
image
이제 Form1.cs파일을 확인하면 변경한 것이 적용된 것을 볼 수 있습니다.
이제 서버에도 적용하려면 commit을 해야 합니다.
단 제대로 Merge 되었는지 확인 후에 commit 을 하도록 합시다.

이제 Branch와 Merge가 완료 되었습니다.

And
prev | 1 | ··· | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ··· | 12 | next