최근 구매한 샌 디스크 USB가 쓰기금지가 되서 수정 지우기는 물론 포멧도 안되게 되었습니다.

제가 특별한 작업을 한 것도 아니고 USB 내부에 있는 안드로이드 스튜디오 프로젝트가 로딩 된 상태에서 동영상 강의를 USB로 옮기자 중간에 속도가 느려지더니 쓰기 금지가 되어버렸습니다.(USB에서의 멀티 테스킹은 위험한가 봅니다.)

사실 이번이 처음이 아니고 몇 년전에 구매한 제품도 쓰기 금지가 되서 방치해 놨다가 도저히 안되겠어서 각 총판 AS사에 전화를 해 교환신청 택배를 보냈습니다.

하나는 AK, 다른 하나는 SOI 홀로그램이 붙어있었네요. 각 회사 연락처에 전화하면 문자를 보내줍니다.


[Web발신][소이전자AS안내]
경기도 과천시 찬우물로 21-5소이전자 2층 A/S담당자앞
Tel.02-6262-2000
한진택배(1588-0011)이용하셔서
성함, 연락처, 주소, 구입처, 불량증상을 간단히 적은 메모와 왕복 배송비 5,000원 동봉 후 착불로 발송 바랍니다. 한진택배 접수시 업체 신용코드번호 7자리 요청할 경우: 6006814
(등기 및 타 택배 선불로 발송시 2,500원만 동봉)


[Web발신][총판AK]
경기 파주 광탄면 용미리 325-2번지 AK물류센터 샌디스크 A/S담당자 앞 (10955)
현금2,500원과 성함,연락처,주소 기재한 메모 동봉 후 택배 선불접수로 보내주세요~^^
데이터 폐기됨, 2주~3주 이상 소요, 파손은 AS 불가


그리고 민감한 자료가 들어있어서 고민하시는 분들은 제가 통화했던 내용을 들어 보고 판단해 주시면 좋겠습니다.

사실 저도 이전 USB를 방치한 것이 제가 개발한 여러가지 프로젝트 관련 자료가 들어있어서 교환을 망설였던 거였는데요. 서비스  센터의 이야기로는 USB 내부의 자료는 확인하지 않고 폐기한다고 합니다. 설사 확인을 하게 되면 하기 전에 저한테 연락을 줘서 동의를 받고 확인한다고 합니다. 저는 이 말을 믿고 그냥 보내기로 결심했습니다.

인터넷에 있는 쓰기 방지 풀기 방법이 있는데 이 방법은 쓰기 금지가 되고 나면 소용이 없습니다. 쓰기 금지가 되기 전에 각 USB에 조치를 취해주고 사용하는 모든 컴퓨터에 레지스트리를 추가해서 쓰기 금지가 안되도록 조치를 해 주세요. 저도 2개의 USB가 도착하면 조치할 예정입니다.

(모든 쓰기 금지 푸는 글에는 이에 대한 언급을 찾아보기 힘듭니다. 그래서 쓰기 금지가 되고 난 다음에 찾아서 해 보지만 개인의 힘으로는 절대로 풀 수 없습니다. 서비스 센터에서도 홀로그램 확인 후 새 제품으로 교환해 주는 방법밖에는 없다고 하네요.)


조치1. 모든 USB에 대하여 "diskpart" 프로그램으로 readonly 속성을 지워버립니다.

1. (윈도우 기준입니다.) "윈도우키+R" 키를 클릭합니다.
2. 입력창에 "cmd" 입력 후 "확인" 버튼  클릭합니다.
3. 명령 창에 "diskpart" 입력 후 "enter"키를  클릭합니다.(새 창에 disk part 프로그램이 실행됩니다.)
4. 명령 창에 "list disk" 입력 후 "enter"키를 클릭합니다.(디스크 목록이 나옵니다.)
5. 디스크 목록 중 USB 용량과 동일한 번호를 확인합니다.
    예를 들어 번호가 3이라면 "select disk 3" 입력 후 "enter"키 클릭합니다.(해당 디스크가 선택되었다고 나옵니다.)
6. 명령 창에 "attributes disk clear readonly" 입력 후 "enter"키 (디스크 특성을 지웠습니다. 메시지를 확인합니다.)

조치1은 이렇게 끝났습니다.


조치2. 모든 사용하는 컴퓨터에 레지스트리를 등록 또는 수정합니다.

1. (윈도우기준입니다.) "윈도우키+R" 키를 클릭합니다.
2. 입력창에 "regedit" 입력 후 "확인" 버튼  클릭합니다.
3. "컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\" 폴더로 이동합니다.
4. "Control" 폴더에 마우스를 올리고, 마우스 오른쪽 버튼을 클릭해서 "새로만들기 - 키" 를 선택합니다.
5. 폴더 이름을 "Storage Device Policies"로 수정합니다.
6. "Storage Device Policies" 폴더에 마우스를 올리고, 마우스 오른쪽 버튼을 클릭해서 "새로만들기 - DWORD(32비트)" 를 선택합니다.
7. 값 이름을 "write protect"로 설정합니다.
8. 새로 만들면 기본값이 0이기 때문에 할 필요는 없습니다. 혹시 이미 이 값이 있고 값이 0이 아닌 경우에는 더블클릭해서 값을 0으로 수정합니다.

조치2도 이렇게 끝났습니다.


사실 이렇게 한다고 해도 쓰기 금지가 안 일어날 지는 미지수입니다.
그래도 최대한 조치를 해 놓고 사용하면 조금이라도 마음이 편하겠네요.

감사합니다.

이번에는 파일을 분석해서 이 파일이 어느 종류의 파일인지를 알 수 있는 방법에 대해 알아보겠습니다.

사실 대부분의 경우 확장자가 잘 되어 있기 때문에 이 과정이 필요 없을 수 있습니다.
확장자가 jpg, png bmp 인 경우 그림파일, mp3 wav 인 경우 오디오 파일 avi mp4 인 경우 동영상 파일 등...
컴퓨터를 사용하다 보면 자연스럽게 알게 되는 정보이기 때문이죠.

그런데 흔하지는 않지만 실수 또는 잘못된 방법으로 파일의 확장자가 마음대로 변경된 경우를 경험하신 적 있으신가요?
저도 거의 없었지만 이전 휴대폰의 파일을 백업하고 오랜 기간이 지난 후에 보니 그림과 동영상 파일의 확장자가 001 002 같이 마음대로 바껴있더라고요.

물론 대략 폴더의 위치를 보고 확장자를 jpg 나 mp4로 바꿔서 실행해 보는 방법이 있습니다만
요즘 프로그래밍을 공부하다 보니 근본적으로 이 파일이 무슨 파일인지 알아내는 방법이 있는지, 이를 프로그래밍 할 수 있는 방법이 있을 지 궁금해 졌습니다.

그래서 구글로 검색을 해 본 결과 다음과 같은 프로그램을 찾았습니다.

TrID - File Identifier
http://mark0.net/soft-trid-e.html

위 프로그램은 파일의 내부를 분석해서 파일의 확장자가 무엇인지와 무슨 파일인지를 찾아주는 프로그램입니다. 실행 방식은 윈도우 cmd에서 실행해서 결과를 텍스트로 뿌려줍니다. 내 컴퓨터에서 실행하기 위해서는 아래 다운로드 링크 중에서 실행 파일과 TrIDDefs.TRD package 2개를 다운받은 후 압축을 풀면 됩니다.

저는 아래 그림과 같이 "C:\trid_w32" 폴더에 trid.exe, triddefs.trd 파일을 복사했습니다. 그리고 테스트를 위해 그림파일을 하나 가져와서 파일 이름을 unknownfile 이라고 하고 확장자를 지워버렸습니다.

그럼 cmd에서 실행해 볼까요? 윈도우키+R을 누르면 실행창이 뜨는데요 "cmd"라고 입력한 후에 확인을 클릭하면 됩니다. "C:\trid_w32" 폴더로 이동해서 명령어를 "trid unknownfile"라고 입력하면 아래 그림과 파일 분석 후에 결과가 나오게 됩니다.

이 프로그램의 결과를 visual studio 로 가져와서 원하는 형식으로 출력할 수 있을까요? 검색을 해 본 결과 가능한 것을 확인했습니다.

Process.start: how to get the output?
https://stackoverflow.com/questions/4291912/process-start-how-to-get-the-output

이제 프로그래밍을 해보겠습니다.

Visual Studio에서 새로운 프로젝트를 아래 그림과 같이 생성합니다. 프로젝트 이름은 "WindowsFormFileIdentifier" 로 지정하였습니다.

그리고 폼을 꾸며보겠습니다. 우선 기본 폼의 속성을 몇가지 변경합니다.

(Name): Form1 - Text: 파일형식 찾기 / Size: 400, 400

이제 도구들을 추가하고 속성을 변경하겠습니다.

라벨(Label) - (Name): label1 / Location: 20, 20 / AutoSize: True / Size: 137, 12(자동으로 설정됨) / Text: 파일 형식 찾기 프로그램
라벨(Label) - (Name): label2 / Location: 20, 60 / AutoSize: True / Size: 231, 12(자동으로 설정됨) / Text: 1. 오른쪽 버튼을 눌러 파일을 선택합니다.
버튼(Button) - (Name): button1 / Location: 260, 60 / AutoSize: False / Size: 75, 23 / Text: 파일 선택
라벨(Label) - (Name): label3 / Location: 20, 100 / AutoSize: True / Size: 73, 12(자동으로 설정됨) / Text: 선택한 파일:
라벨(Label) - (Name): label4 / Location: 100, 100 / AutoSize: True / Size: 29, 12(자동으로 설정됨) / Text: 없음
라벨(Label) - (Name): label5 / Location: 20, 140 / AutoSize: True / Size: 109, 12(자동으로 설정됨) / Text: 선택한 파일의 정보
자료보기창(DataGridView) - (Name): dataGridView1 / Location: 20, 180 / AutoSize: False / Size: 350, 160

꾸며진 결과는 아래 그림과 같습니다.

외형을 완성했으면 이제 프로그래밍을 해보겠습니다.
파일 선택 버튼을 더블클릭하면 자동으로 이벤트가 추가되고 코드보기 화면으로 전환됩니다.

코드를 작성하기 전에 bin\debug 폴더에 위에서 실행했던 trid.exe, triddefs.trd 2개의 파일을 붙여넣기 해야 합니다.
코드 왼쪽에 있는 솔루션 탐색기 메뉴에서 아이콘 중 모든파일 표시 아이콘을 클릭합니다. 기존에는 프로젝트와 관련이 없는 폴더나 파일은 숨겨져 있는데 이 아이콘을 클릭하면 모든 파일이 나타납니다. bin 폴더 안에 있는 debug 폴더에 커서를 놓고 오른쪽 마우스 버튼을 클릭한 후에 "파일 탐색기에서 폴더 열기" 메뉴를 클릭하면 해당 폴더 파일 탐색기가 열리게 됩니다.

이제 위에서 설명한 2개의 파일을 붙여넣기 하면 아래 그림과 같이 파일이 복사된 것을 확인할 수 있습니다.

이제 프로그래밍으 해보겠습니다. 매서드를 2개 만들겠습니다.

매서드1. 실행파일과 분석할 파일 경로를 활용하여 cmd에서 나왔던 정보를 datatable 형식으로 변환하여 출력해 주는 매서드 입니다.

        /// <summary>
        /// 선택한 파일에 대한 정보를 DataTable 형식으로 내보냅니다.
        /// </summary>
        /// <param name="FileName">선택한 파일의 전체 경로</param>
        /// <returns></returns>
        private DataTable GetResultsFromTridCMDStrings(string FileName)
        {
            // executableLocation 은 프로젝트 폴더\bin\debug 까지의 폴더입니다.
            string executableLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            // exefileLocation 는 executableLocation 안에 있는 실행파일 trid.exe 의 전체 경로입니다.
            string exefileLocation = Path.Combine(executableLocation, "trid.exe");

            // cmd에서 실행했던 것 처럼 프로세스를 실행하기 위한 설정값이 들어간 process 클래스를 proc라는 변수명으로 생성합니다.
            var proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = exefileLocation,
                    Arguments = FileName,
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    CreateNoWindow = true
                }
            };

            // 출력을 위한 datatable을 생성합니다.
            DataTable dt = new DataTable();
            dt.Columns.Add("%", typeof(string)); // 확률
            dt.Columns.Add("Ext", typeof(string)); // 확장자
            dt.Columns.Add("Desc", typeof(string)); // 설명

            proc.Start(); // 위에서 생성한 proc를 실행합니다.
            while (!proc.StandardOutput.EndOfStream)
            {
                string line1 = proc.StandardOutput.ReadLine(); // cmd에서 나왔던 결과를 1줄씩 가져옵니다.

                if (line1.Contains("%")) // 라인에 %가 있을 경우에만 동작하게 했습니다.
                {
                    string dtcol1 = line1.Split('%')[0]; // 확률정보만 가져옵니다.
                    dtcol1 += "%";
                    string dtcol2 = line1.Split('(')[1]; // 확장자(점포함) 정보만 가져옵니다.
                    dtcol2 = dtcol2.Split(')')[0];
                    string dtcol3 = line1.Split(')')[1]; // 설명부분만 가져옵니다.
                    dtcol3 = dtcol3.Split('(')[0];

                    dt.Rows.Add(dtcol1, dtcol2, dtcol3); // 위의 3가지 정보가 포함된 DataRow를 추가합니다.
                }
            }

            return dt;
        }

매서드2. 위에서 제공된 결과를 DataGridView 컨트롤에서 볼 수 있도록 가져옵니다.

        /// <summary>
        /// 선택한 폴더의 파일 목록을 가져와서 DataGridView 도구에 보여줍니다.
        /// </summary>
        /// <param name="dt1">선택한 폴더의 파일 목록이 들어있는 DataTable을 입력합니다.</param>
        /// <param name="dgv1">결과를 출력할 DataGridView를 선택합니다.</param>
        private void ShowDataFromDataTableToDataGridView(DataTable dt1, DataGridView dgv1)
        {
            dgv1.Rows.Clear(); // 이전 정보가 있을 경우, 모든 행을 삭제합니다.
            dgv1.Columns.Clear(); // 이전 정보가 있을 경우, 모든 열을 삭제합니다.

            foreach (DataColumn dc1 in dt1.Columns) // 선택한 파일 목록이 들어있는 DataTable의 모든 열을 스캔합니다.
            {
                dgv1.Columns.Add(dc1.ColumnName, dc1.ColumnName); // 출력할 DataGridView에 열을 추가합니다.
            }

            int row_index = 0; // 행 인덱스 번호(초기 값)
            foreach (DataRow dr1 in dt1.Rows) // 선택한 파일 목록이 들어있는 DataTable의 모든 행을 스캔합니다.
            {
                dgv1.Rows.Add(); // 빈 행을 하나 추가합니다.
                foreach (DataColumn dc1 in dt1.Columns) // 선택한 파일 목록이 들어있는 DataTable의 모든 열을 스캔합니다.
                {
                    dgv1.Rows[row_index].Cells[dc1.ColumnName].Value = dr1[dc1.ColumnName]; // 선택 행 별로, 스캔하는 열에 해당하는 셀 값을 입력합니다.
                }
                row_index++; // 다음 행 인덱스를 선택하기 위해 1을 더해줍니다.
            }

            foreach (DataGridViewColumn drvc1 in dgv1.Columns) // 결과를 출력할 DataGridView의 모든 열을 스캔합니다.
            {
                drvc1.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; // 선택 열의 너비를 자동으로 설정합니다.
            }
        }

위에서 만든 2개의 매서드를 활용하여 버튼클릭 이벤트를 아래와 같이 수정합니다.

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog(); // OpenFileDialog 생성합니다.
            openFileDialog1.Multiselect = false; // 여러개 선택 못하게 합니다.
            if (openFileDialog1.ShowDialog() == DialogResult.OK) // 파일이 선택된 경우에만 실행되게 합니다.
            {
                label4.Text = openFileDialog1.FileName; // 선택한 폴더 이름을 label4에 출력합니다.
                DataTable dt_filelistinfo = GetResultsFromTridCMDStrings(openFileDialog1.FileName);
                ShowDataFromDataTableToDataGridView(dt_filelistinfo, dataGridView1);
            }
        }

전체 코드는 다음과 같습니다.

using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System; using System.Windows.Forms; using System.Data; // DataTable 사용 using System.IO; // Path 사용 using System.Reflection; // Assembly 사용 using System.Diagnostics; // Process 사용 namespace WindowsFormFileIdentifier { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); // OpenFileDialog 생성합니다. openFileDialog1.Multiselect = false; // 여러개 선택 못하게 합니다. if (openFileDialog1.ShowDialog() == DialogResult.OK) // 파일이 선택된 경우에만 실행되게 합니다. { label4.Text = openFileDialog1.FileName; // 선택한 폴더 이름을 label4에 출력합니다. DataTable dt_filelistinfo = GetResultsFromTridCMDStrings(openFileDialog1.FileName); ShowDataFromDataTableToDataGridView(dt_filelistinfo, dataGridView1); } } private DataTable GetResultsFromTridCMDStrings(string FileName) {             생략(매서드1) } private void ShowDataFromDataTableToDataGridView(DataTable dt1, DataGridView dgv1) {             생략(매서드2) } } }

이제 실행해 보겠습니다.
실행하면 다음과 같이 나타납니다.

파일 선택 버튼을 클릭하고 예제 파일에 있던 "unknownfile" 을 선택하면 다음과 같이 결과가 출력됩니다.

이제 위의 내용을 활용해서 확장자가 변경되었거나 확실하지 않은 파일이 있다면 이 프로그램으로 찾아서 바꿔주는 프로그래밍을 할 수 있습니다.

감사합니다.

안녕하세요. 저는 맥북프로 레티나 2013 late 버전을 사용하고 있습니다.
SSD 용량은 256G 버전을 구매했었습니다. 256G 용량 내에서 음악 프로그램 및 개발 도구, 부트캠프까지 사용하려다 보니 용량이 너무 부족했습니다.

그래서 초반에 생각해 낸 방법은 SD 카드에 JetDrive를 구매해서 용량을 늘리기로 하고 구매해서 오랜기간 사용했었습니다. 제가 구매한 제품 정보는 아래와 같습니다.

트랜센드 JetDrive Lite 330 128GB

https://search.shopping.naver.com/detail/detail.nhn?nv_mid=8493757187&cat_id=50004625&frm=NVSCTAB&query=jet+drive+sd

하지만 이 곳에 프로그램을 설치하기에는 외장 메모리라는 리스크가 존재하였습니다. 그래서 이 공간에는 다운로드 파일, 음악. 영상 등 프로그램이 아닌 독립된 파일만 저장하는 목적으로 사용되어왔습니다. 오랜 고민 끝에 최근 SSD를 업그레이드 하기로 결심하고 공부를 좀 했습니다. 용량은 고민 끝에 1TB(1000GB) 수준으로 

첫번째로 가장 중요한 SSD를 구하기 위해 제품을 구글에서 찾았습니다. 가장 쉬운 방법입니다.
제품 정보는 아래와 같습니다.

트랜센드 JETDRIVE 820 960GB

https://search.shopping.naver.com/detail/detail.nhn?nv_mid=12792420928&cat_id=50001617&frm=NVSCPRO&query=JetDrive%E2%84%A2+820

비용은 2018년 6월 기준으로 73만원 수준입니다. 비용 상관 없으신 분은 위 제품을 구매하시는 것이 정신건강에 좋습니다.

좀 더 싸게 업그레이드 할 수 있는 방법은 없을까? 하고 더 검색을 해 봤습니다. 그러다가 M.2 (2280) 방식을 맥북에서 사용가능하도록 하는 Convert를 발견했습니다. M.2 (2280) 방식의 SSD가 JETDRIVE 820 보다 20만원 정도 저렴하기 때문에 아답터 비용을 추가한다고 해도 훨씬 저렴하게 업그레이드가 가능합니다. Convert 제품 정보는 아래와 같습니다.

2014 2015 Macbook 12+16pin to M.2 NGFF M-Key SSD Convert Card for A1493 A1502
https://www.ebay.com/itm/2014-2015-Macbook-12-16pin-to-M-2-NGFF-M-Key-SSD-Convert-Card-for-A1493-A1502/263255987900?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

이 제품의 존재를 믿고 M.2 (2280) 방식의 SSD를 찾아보았습니다. 그 결과 가격을 고려해서 2개의 제품으로 압축되었습니다. 두 제품의 정보는 아래와 같습니다.

삼성전자 970 EVO M.2 2280 (1TB)

http://prod.danawa.com/info/?pcode=6095758&cate=112760
2018년 6월 기준으로 오픈마켓에서 57만원 정도에 구매 가능합니다. 

ADATA XPG GAMMIX S11 M.2 2280 (960GB)

http://prod.danawa.com/info/?pcode=6125741&cate=112760
2018년 6월 기준으로 오픈마켓에서 46.5만원 정도에 구매 가능합니다.

스팩은 제가 봤을 땐 큰 차이가 없어 보입니다. 그래서 전 ADATA XPG GAMMIX S11 M.2 2280 (960GB) 제품을 구매했습니다. 개인적으로 SSD를 AS 받은 경험이 없기 때문에 약간의 리스크를 안고 좀 더 저렴한 제품을 선택하였습니다.

두 제품을 결제를 했는데 SSD는 국내에서 구매했기 때문에 이틀 뒤 바로 도착하였습니다. 하지만 해외에서 구매한 Convert가 생각보다 늦게 오는 바람에 설치가 많이 늦어졌습니다. 2018년 5월 28일에 구매했는데 2018년 6월 14일에 도착했네요... 2주가 좀 넘게 걸렸죠...ㅜㅜ

조심하세요!!
Convert의 경우 다른 사이트에서 훨씬 전(2018년 5월 14일 구매)에 구매를 했는데 2주가 넘게 배송 추적이 되지 않아서 ebay에서 구매하게 되었습니다. 혹시 아래 제품을 찾으신 분이 있다면 구매하지 마세요. 제품 가격은 ebay 보다 저렴해서 2개를 주문했는데 1달이 지난 지금까지 도착이 안되고 있습니다. 배송 추적도 안되네요.
(판매자가 발송을 했다고 처리해서 취소도 안됩니다... 메시지도 보냈지만 답변을 주지도 않네요)

CY SA-213 12+16pin to M.2 NGFF M-Key SSD Convert Card
http://www.dx.com/p/cy-sa-213-12-16pin-to-m-2-ngff-m-key-ssd-convert-card-479010#.WyPsbaczYuU
(!위 링크에서 구매하지 마세요!)

드디어 준비는 끝났습니다. 여기서 잠깐! 추가로 준비해야 할 도구가 있습니다. 바로 드라이버인데요. 맥북을 분해하기 위해서는 일반 십자나 일자 드라이버가 아닌 P5, T5 드라이버가 필요합니다. 없으시다면 아래 링크를 클릭해서 구매해 주세요.
주의할 점: JETDRIVE 820을 구매하셨을 경우 구성에서 드라이버도 포함되어있을 수도 있습니다. 이 점 잘 확인해서 중복구매를 피해주세요.

맥북 분해용 6각 5각 별드라이버 별나사 T6 5P

http://itempage3.auction.co.kr/DetailView.aspx?ItemNo=A671523055&frm3=V2

저 같은 경우 샤오미 전동 드라이버를 구매했는데 거기에 운 좋게 P5와 T5가 들어있었습니다. 제가 구매한 제품의 정보는 아래와 같습니다.

샤오미 전동드라이버 와우스틱 / 1fs 18bits

(네이버에서 검색해서 구매하세요. 링크를 안 넣은 이유는 제가 구매했을때 가격보다 많이 비싸져서서 특정 링크를 알려드리기 곤란하네요.)
이 제품을 구매할 때 주의할 점은 6bits를 구매하게 되면 P5, T5가 없을 수도 있습니다 꼭 18bits를 구매하세요.

이제 모든 준비가 끝났습니다. 제가 참고한 SSD 교체 과정은 아래 링크를 참고해 주세요.

MacBook Pro 13" Retina Display Late 2013 SSD Replacement
https://ko.ifixit.com/Guide/MacBook+Pro+13-Inch+Retina+Display+Late+2013+SSD+Replacement/26811

여기서 부터는 제가 구매한 제품 사진 및 교체 과정을 사진과 간다한 설명으로 진행하겠습니다.

1. 준비물1: Macbook 12+16pin to M.2 NGFF M-Key SSD Convert Card, 해외에서 구매한 Convert 입니다. 포장 및 개봉 사진입니다.

 

2. 준비물2: ADATA XPG GAMMIX S11 M.2 2280 (960GB), M.2 2280 방식 SSD 사진입니다. 개봉 전에 뚜껑을 열어 제품 확인이 가능합니다. 

 

3. SSD에 Conver를 장착한 화면입니다.

4. 맥북프로레티나를 분해하기 위해 뒤집어 놓았습니다. 10개의 P5 나사를 분해합니다. 샤오미 전동드라이버 와우스틱에서 P5 드라이버 끝부분를 찾아서 결합 후 작업하였습니다.

 

 

5. 10개의 나사를 분해한 후에는 윗부분을 들어주면 아래 그림과 같이 분해가 됩니다. 저는 베터리 분해는 안했습니다. 별 문제 없었습니다. 확실하게 해 보실 분은 베터리 분해도 설명에 나와있는대로 해 보세요.

6. SSD 끝 부분에 있는 T5 나사 1개를 분해합니다. 기존 SSD를 제거하고 3번에서 작업한 내용물을 장착하고 다시 T5나사를 조립합니다.

 

저렇게 사진으로 보면 별 문제 없어보이지만 완전히 딱 맞지가 않습니다. 너비와 길이가 기존 SSD와 동일한데 기존 SSD를 낄 때보다 미세하게 덜 들어간 느낌이었습니다. 뚜껑도 조립은 되지만 처음보다 약간 튀어나온다는 느낌을 받았습니다. 이 원인은 방열판 때문에 기존 SSD보다 두꺼워서 발생하는 문제 같습니다. 그래도 장착이 불가능한 수준은 아닙니다. 미세한 차이에도 민감하게 느끼시느 분이라면 비용을 들여서라도 JetDrive를 구매해 주세요.

7. 뚜껑을 닫고 10개의 P5 나사를 조립합니다.

이제 하드웨어 조립은 완료되었습니다. 잘 인식되길 바래야겠네요.

이제는 새로운 SSD에 설치하기 위해 설치 USB를 만들고 디스크 유틸리티에서 SSD를 초기화 해주고 macOS를 설치해 주면 됩니다. 이와 관련된 내용은 아래 블로그에 상세하게 나와있기 때문에 설명을 생략합니다. 아래 2개의 글을 읽고 잘 따라해 주세요.

macOS 클린 설치 하기 (1) _ 설치 USB 만들기
http://macclub.tistory.com/112

macOS 클린 설치 하기 (2) _ macOS Sierra 설치하기
http://macclub.tistory.com/114

아래 사진은 조립한 하드가 초기화 되기 전의 사진입니다. 960GB의 용량은 잘 표시되네요.

초기화를 완료하면 아래 그림과 같이 나타납니다. 이제 대용량 SSD에 macOS를 설치하면 되겠네요.

감사합니다.

+ Recent posts