fdisk로 4K 섹터 정렬된 파티션 생성

parted나 fdisk나 4K 정렬을 지원하지만 그냥 생성한다고해서 정렬 된 파티션으로 생성되지않는다. 정렬되지 않았다고 그냥 경고 메시지만 출력할 뿐(…) 직접 계산하여 생성할 수 있겠지만 그럴 필요성까지는 느껴지지않는다. parted같은 경우 정렬 된 파티션을 생성하려면 이전에 남긴 “Parted 사용정리” 글을 보면 될것이고 fdisk는 실행할 때 옵션을 주면 된다.

1. fdisk 버전 2.17.1 미만일경우
# fdisk -S 32 -H 64 disk.img

2. fdisk 버전 2.17.1 이상일경우
# fdisk -c -u disk.img

이렇게 실행하여 경우 결과는 아래와같다.

Welcome to fdisk (util-linux 2.30.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (1-4, default 1):
First sector (2048-262143, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-262143, default 262143): +10K

Created a new partition 1 of type 'Linux' and of size 10 KiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (2-4, default 2):
First sector (2068-262143, default 4096):
Last sector, +sectors or +size{K,M,G,T,P} (4096-262143, default 262143):

Created a new partition 2 of type 'Linux' and of size 126 MiB.

Command (m for help): p
Disk disk.img: 128 MiB, 134217728 bytes, 262144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe765896f

Device     Boot Start    End Sectors  Size Id Type
disk.img1        2048   2067      20   10K 83 Linux
disk.img2        4096 262143  258048  126M 83 Linux

Command (m for help):

그런데 정렬된 파티션을 생성할 때 왜 2048섹터가 시작점이 되는지 모르겠다. 섹터당 512 bytes라면 8섹터가 4096바이트, 2048섹터는 1메가바이트인데… 구글링해도 시원한 답이 안보인다. 그냥 넘어가야겠다.

추가내용) 4K 섹터 정렬에 대한 잘 설명된 글은 데스게이트의 글인 고급 포맷 4K 섹터 하드 드라이브로의 전환에서 볼 수 있다. (왜 데스게이트라고 불리는지는 나무위키 Seagate 페이지의 돌연사 항목을 보자. 나중에 번호가 바뀌더라도 돌연사 항목을 찾아서 보면 될것이다. WD는 자회사인 HGST보다 안정성 떨어져 불량이 많이 늘어 마찬가지로 신뢰 안하는 중. 모든 하드가 다 마찬가지긴 한데 쓰려면 최소한 RAID-1을 써야 나중에 피 안본다.)

참고페이지: Partition Alignment

몬스터 헌터 월드 사운드 설정

팁이라고하기엔 너무나도 부실한 팁.

첫 시작 때 사운드가 박진감 너무 없어서 이상했는데 기본 설정이 TV 스피커 출력이여서 그랬던거같다. 가끔 기본 설정이 저가형 스피커 기준으로 되어있어 2.1채널 스피커를 쓴다거나 헤드폰으로 즐길 때 어딘가 나사빠진 음향출력을 하는 경우가 있는데 몬헌 월드도 이러한 경우인거같다.

(위에 다이나믹 레인지 설정이 풀 레인지 스피커, 멀티 웨이 스피커같은 유닛 종류에 따른 설정인 줄 알았지만 하위항목 설명을 보니 그런건 아니였다.)

우퍼가 따로있는 스피커를 쓴다거나 헤드폰을 쓴다면 기호에 맞게 설정하면 저음만큼은 확실하게 차이나게되므로 음향에 쓴 돈값어치를 좀 하게 될것이다(…).

덧) 사냥 좀 해보니 느껴지는것이 대형 몬스터와 전투 시 음악이 은근 박진감이 없다 orz

두근두근 문예부 한글패치 1.1.7버전 맥에서 적용하기 (1.2버전 가능)

전 버전의 영상을 유튜브 주계정에 올리지 않았음을 알게되어 다시 녹화 하려다 한글패치가 1.1.7로 업데이트되고 기존의 방법이 안된다는것을 알게되었다. 방법은 거의 같지만 다른점이 한가지있으므로 새로운 글로 패치 과정을 기록한다. (이번엔 귀찮으므로 글로는 대충적고 영상으로 때워야겠다.)

추가) 1.2버전도 동일하게 적용됨을 확인 완료.

1. 최신 한글패치(현재 1.1.7버전)와 renpy sdk를 다운로드한다.
renpy 6.x.x: https://www.renpy.org/release/6.99.14
한글패치: https://sites.google.com/view/dokidokikor
(댓글의 제보에 의하여 renpy sdk 링크를 6버전대의 sdk로 변경)

2. 한글패치 다운로드 페이지를 참고하여 [로컬 컨텐츠 폴더]를 연다.

3. 한글패치의 game 폴더내 파일 세개를 선택하여 [로컬 컨텐츠 폴더] 내의 game 폴더로 이동하여 덮어씌운다.

(game 폴더를 복사하여 대치하면 다른 파일들이 지워지고, 병합하면 파일의 수정날짜로 비교하여 덮어지거나 넘어가버리므로 복사되지않을 수 있다.)

4. renpy sdk의 renpy 폴더를 복사하여 [로컬 컨텐츠 폴더]에 붙여넣기하고 대치한다.

5. [로컬 컨텐츠 폴더]에서 DDLC 패키지 폴더를 연다.

6. Contents – MacOS – lib – darwin-x86_64 – Lib 폴더로 이동한다.

7. renpy sdk 폴더에서 lib – darwin-x86_64 – lib – python2.7 폴더로 이동한다.

8. 7번에서 열어놓은 python2.7 폴더에서 pygame_sdl2와 renpy폴더를 복사하여 6번에서 열어놓은 Lib 폴더에 붙여넣기하여 대치한다.

9. 실행하면 끝!

아래는 영상으로 남기는 한패과정

윈도 저장소 폴(저장소 공간)의 성능

저장소 공간은 이미 나온지가 꽤 지난 기술이지만 의외로 정보가 없다. 일단 이 글은 저장소 공간을 설정하는걸 설명하는게 목적이 아니기때문에 설정은 패스. 부실하지만 간략한 방법 및 설명은 [이곳 페이지]에서 확인가능.

그래도 저장소 공간을 만들 때 중요한 부분을 설명하자면

  • 단순(복원 없음) – RAID 0에 해당. 디스크 두개 이상이 모두 이어저 하나로 연결된 형태(1테라 + 1테라 => 2테라). 단점은 하드 중 하나라도 고장나면 모든 데이터가 소실된다.
  • 양방향 미러 – RAID 1에 해당. 모든 디스크에 동일하게 데이터를 기록하는 형태(1테라 + 1테라 => 1테라). 두개 이상의 하드에 동일하게 기록하기때문에 구성 된 하드 중 하나만 정상이고 나머지는 망가져도 데이터는 보존된다.
  • 패리티 – RAID 5에 해당. 이건 좀 복잡하다. 단순하게 생각하면 디스크 세개이상을 두개의 용량으로 사용하면서(1테라 + 1테라 + 1테라 => 2테라) 하나의 디스크가 문제있어도 해당 디스크 교채 후 재구성이 가능하다.

그 외 3방향 미러가있지만 패스. HDD가 다섯개 이상 필요하기도하고 이정도로 구성할 사용자가 개념을 알기위해 이걸 볼 이유가 없을것이기때문(…). 첨언을 하자면 저장소 공간은 기본 할당 가능한 용량보다 높게 설정가능하지만 그 용량 을 넘어서 기록 된 데이터 안정성 보장이 안되므로 추천하고싶지않다.

목적이 아닌 서론은 이정도에서 끝. (참고로 아래 내용은 일부 OS의 환경이나 하드웨어에 따라 다를 수 있으니 모든 사용자에 해당하지 않을 수 있다고 본다.) Continue reading 윈도 저장소 폴(저장소 공간)의 성능

Qt Multimedia의 QMediaPlayer가 동작 안할 때

여기에서 말하는 문제는 윈도에서의 Qt 문제.

먼저 Backends 별 사용할 수 있는 기능(?)의 표는 아래 링크에서 확인가능.
https://wiki.qt.io/Qt_Multimedia_Backends

Qt 홈페이지에서 받을 수 있는 바이너리 라이브러리는 Multimedia Backends가 DirectShow로 되어있는것으로 보인다. 구글링해도 뾰족한 답을 찾기 힘들었는데 결국 이것도 몇시간동안 삽질해본 결과 재생 안되면 적절한 코덱을 깔아야하고(…) 아니면 Media Foundation을 사용하는 것이였다.

Media Foundation을 사용하려면 Multimedia 라이브러리를 빌드할 때 Media Foundation을 사용하도록 해야한다. 아래는 내가 사용한 qt-everywhere-opensource 패키지의 configure 옵션.

configure -opensource -confirm-license -prefix D:\OpenSource\Qt5.9.0.x64 -nomake examples -nomake tests -force-debug-info -platform win32-msvc -mp -opengl dynamic -mediaplayer-backend wmf

핵심은 -mediaplayer-backend wmf 옵션이다. 이렇게 빌드된것과 기본인 DirectShow를 사용하도록 빌드했을 때 대략 아래와같이 차이가 난다.

– DirectShow

dsengine.dll은 211KB, wmfengine.dll은 42KB

– Media Foundation

dsengine.dll은 63KB, wmfengine.dll은 167KB (qtmedia_audioengined.pdb 파일이 약간 차이있지만 코드에서 backend 별로 메크로 차이가 있는지는 확인 안해보았다.)

Media Foundation은 범용적으로 사용하는 코덱을 지원하므로 프로그램이 윈 7 이상이라면 이쪽을 사용하도록하는것이 더 나아보인다. (자세한 정보는 https://msdn.microsoft.com/ko-kr/library/windows/desktop/dd757927 이곳에서.) 물론 기존의 DirectShow가 더 다양한 코덱이 있을것으로 보기때문에 특정 포맷만 지원할것이 아니라면 DirectShow를 사용하는것이 더 나을 수 있다.

빌드 자체를 남기는 기록이 아니기때문에 여기까지. 만약 빌드 방법을 찾는다면 http://rette.iruis.net/2017/05/qt-5-8-0-webengine-%EB%AA%A8%EB%93%88-%EB%B9%8C%EB%93%9C/ 이 글을 참조.