반응형

이번주에는 이모께서 오래된 PC 하나를 윈도우 7에서 10으로 업그레이드를 부탁하셔서 작업을 해보았다.

직접 방문이 어려운 상태라 TeamViewer 를 통해 직접 업글을 시도하였는데, 결론을 미리 말하자면 "실패" 했다.

 

2일동안 고생했던 이야기를 지금 풀어놓을테니, 같은 문제점을 해결하기 위해 검색하시는 분들이 고민말고 바로 깔끔하게 포기하고 넘어가시길 바라는 마음에 글을 적어본다. 

 

윈도우7에서 10에서 "이 PC 업그레이드" 방법을 쓸 수 있는 PC는 클린한 상태의 PC에 가까울 수록 성공확률이 있고, 꽤 오랜 시간 사용한 PC일 수록 "이 PC 업그레이드" 실패 확률이 매우 높게 발생한다.

 

< 우선, 이 PC 업그레이드를 하기 위한 사전 조건 ... >

1. Windows 업데이트를 모두 해주어야 한다.

 

2. 부착 되어있는 하드웨어 등을 모두 제거해주어야 한다.

 

3. 백신 프로그램 등을 모두 제거 해주어야 한다.

 

4. 여유 용량을 20GB이상 확보해주어야 한다.

 

 

맨 처음에는 아예 도구 프로그램이 실행조차 되지 않았다.

오류 코드로는 "0x80072f8f 0x20000" 이 발생헀는데, 이 시점에서는 아직 1~4 을 모두 수행하지 않았었다. 

해결 방법들로 제시된 것들은 정말 다양하지만, 일단 몇개를 적어둔다.

 

https://answers.microsoft.com/en-us/windows/forum/all/media-creation-tool-error-code-0x80072f8f-0x20000/4f8bbe1c-b5af-4cc9-958e-c6c8f3f0b524

 

리디렉션 중

 

login.microsoftonline.com

해당 링크의 Reply 를 보다보면, 

 

더보기

Some server that the MediaCreationTool21H2.exe tries to talk to apparently no longer speaks the old TLS 1.0 security protocol, but Windows 7 SP1 still has the newer TLS 1.1 and TLS 1.2 disabled by default, resulting in this error code right at the start. So I had to first run the “Easy fix 51044” MSI to make a few registry changes to enable the more recent TLS versions, and then Media Creation Tool - error code 0X80072F8F - 0X20000 no longer appeared.

The newer operating system booted from the installation ISO image won't have that TLS-version limitation, so using that should be another solution to the same problem.

Details:

 

해결책을 제시한 분이 계신데, 해당 링크에 들어가 Easy fix 파일을 다운받아 레지스트리 수정을 해주어야 한다.

위 과정을 모두 수행했다면, MediaCreationTools.exe 파일이 실행에는 아마 성공했을 것이다.

 

 

... 이다음 부터는 App Crash, KernelBase.dll 파일이 문제가 되었다.

KernelBase.dll 파일은 net Framework 가 제대로 설치되지 않았을 때 발생한다.

해결방법으로는 dllfiles 등에서 다운받아서 덮어 씌워라 등의 가이드가 있긴한데, 이는 매우 위험하다.

왜냐면 PC에 있는 dll 파일과 인터넷상에 게재되어 있는 dll 의 버전이 상이할 수 있다. dll 속성에 들어가 자세히 보기를 하면 버전이 나오니 같은 버전이 있을 경우에만 덮어씌우기를 해주고, 그게 아니라면 net framework 최신 버전으로 재설치를 해주면 해결된다.

 

"끝난줄 알았지?"

"Windows 10을 설치하지 못했습니다." "오류 메시지는 없음"

 

윈도우 설치 단계 정확히 73% 쯤에서 이렇게 계속 발생을 했다.

그래서, 가지고 갈 데이터를 앱/설정/개인데이터 다 빼고 해도 동일하게 발생을 한다.

오류 메시지라도 알려주면 검색이라도 해볼텐데. 딱 "Windows 10 을 설치하지 못했습니다" 만 나오니 환장할 노릇이다.

 

cmd 에서 sfc /scannow 를 수행해도 문제가 없는데...

그래서 결론은 여기까지 삽질하는데 10시간을 넘게 허비했다.

 

물론 MediaCreationTool.exe 가 실행이 안되어 usb (16기가이상필요) 에 설치미디어를 굽지도 못했겠지만

아무튼 usb로 설치했다면 1-2시간이면 끝났을 시간이다.

 

결론은 오래된 구형 PC에서는 절대절대 "이 PC 업그레이드" 기능을 써볼 생각조차 하지 않는게 좋다.

외장하드나, 또는 다른 하드디스크에 바탕화면, 내문서, 사진, 비디오, 음악, 즐겨찾기, 공인인증서 등을 백업해둔 후

usb 에 설치미디어를 만들어 설치하는게 시간상으로도 정신건강상으로도 500% 이득이니 절대로 하지 말길 바란다.

 

또 필요한 파일만 백업하고 윈도우를 재설치하게 된다면 그동안 쓸데없이 쌓여있었던 앱이라거나 쓰레기 데이터들이 제거되는 효과도 있으니, usb로 재설치 해주는게 제일 나은 방법일듯 하다 

 

끝. 

반응형
반응형

오늘은 요구사항으로 새 윈도우 창에 post 로 보내달라는 게 있어서 포스팅에 추가해봅니다.

Vanilla로 짜도되고 jQuery를 쓰셔도 되는데, 두가지를 모두 소개해볼게요.

 

Vanilla

var form = document.createElement('form');
form.setAttribute('target', '_blank');
form.setAttribute('action', '__TARGET_URL__');
form.setAttribute('method', 'post');

var input = document.createElement('input');
input.setAttribute('type', 'hidden');
input.setAttribute('value', '__VALUE__HERE__');
input.setAttribute('name', '__NAME__HERE__');

form.append(input);
document.body.appendChild(form);
form.submit();

 

jQuery

var form = $("<form \>");
form.attr({
    "target": "_blank",
    "action": "__URL__HERE__",
    "method": "post"
});

form.append($("<input \>").attr({
    "type": "hidden",
    "value": "__VALUE__HERE__",
    "name": "__NAME__HERE__"
}))

$("body").append(form);
form.submit();
반응형
반응형

서버에서 제공하고 있는 phpMyAdmin 이 제대로 동작하지 않아, 최신버전으로 업데이트 해주었습니다.

업데이트 후 접속해보니 blowfish_secret에 32 bytes로 작성을 해주어야 하는데, 그렇지 않다 (not correct) 경고가 나오고 있어 수정하였습니다.

 

phpMyAdmin이 설치된 경로에 들어가 config.inc.php를 열어 $cfg['blowfish_secret'] 를 아래 사이트에서 생성하여 붙여 넣으면 경고가 깔끔히 사라집니다.

 

https://www.motorsportdiesel.com/tools/blowfish-salt/pma/

 

phpMyAdmin Blowfish Secret Generator

This tool generates a secure 32 character Blowfish Secret for your phpMyAdmin config file located at / usr / share / phpmyadmin / config.inc.php (on Linux). here . -->

www.motorsportdiesel.com

 

반응형
반응형

YouTube나 Twitch 등 자주 접속하는 사이트들은 즐겨찾기를 해두시는 경우가 많으실텐데요.

이번 포스팅에서는 인터넷 앱을 켜고, 즐겨찾기에 있는 사이트를 클릭하여 접속하는게 아닌 바로 접속하는 방법을 알려드립니다.

 

첫번째, 접속하실 사이트를 먼저 들어 갑니다. 

YouTube를 예로 들어볼게요.

 

들어 가셨죠? ^^

 

저는 IE Edge 를 사용하고 있는데요. IE Edge 에서 우측 상단 가로 점 세개 아이콘을 클릭 합니다. 

 

 

앱 > 이 사이트를 앱으로 설치 를 선택해주세요.

짜잔! 앱이 생성되었습니다. 

 

실행도 잘 됩니다. 이제 인터넷 앱 없이 별개 앱으로 동작 할수 있습니다. 작업표시줄 (또는 Dock) 에도 등록이 가능합니다.

 

반응형
반응형

apt-get upgrade 를 실행하던 와중에 아래와 같은 오류가 발생하며 더이상 upgrade가 진행되지 않았다.

동시에 같이 upgrade 가 수행되던 mysql 서버도 같이 정지되버렸다.. 

 

 

먼저, 다른 정상적 업그레이드가 가능한 패키지들은 먼저 처리를 해준다.

# sudo dpkg --configure -a

MySQL 서버가 다시 정상적으로 실행이 되었다. 이제 문제가 발생한 패키지를 복구해준다.

apt-get remove 나 purge 를 시도했지만 의존성 문제만 나오며 제거가 되지 않는다. 

아래 처럼 시도하여 강제로 패키지를 제거해주었다. 그리고 python3.7를 재설치 해주었다.

# sudo dpkg --remove --force-remove-reinstreq python3.7
# sudo dpkg --remove --force-remove-reinstreq libpython3.7-stdlib
# sudo apt-get clean
# sudo apt-get autoremove
# sudo apt-get install python3.7

 

해결완료.

반응형
반응형

/var/log 에 용량이 많이 차 있어 확인해보니 /var/log/journal 에 용량이 많이 쌓여있었다..

아래와 같이 수행하여 용량을 제한하였다.

 

Retain only the past two days:

journalctl --vacuum-time=2d

Retain only the past 500 MB:

journalctl --vacuum-size=500M
반응형
반응형

어제 우분투 20.04 를 올린 후 발생한 문제들에 대해서 짚어보기로 한다.

 

1. mysql 8 로 업그레이드 되면서 일부 config 제거 (cache_* 등이 먹히지 않았다.)

2. mysql strict mode가 켜짐

3. mysql 8에서 password function 이 제거되었고 groups keyword를 사용할수 없음

-> PASSWORD 로 처리된 부분들을 아래와 같이 처리하면 된다.

password = CONCAT('*', UPPER(SHA1(UNHEX(SHA1(:password)))))

4. php7.4 에서 Object class를 쓸수없음. "new Object" 또는 "extends Object" 로 된 부분들을 모두 BaseObject 로 바꿔주어야 함

-> 아래 명령어로 일괄 치환이 가능하다.

find ./ -name "*.php" -exec sed -i 's/new Object/new BaseObject/g' {} \;
find ./ -name "*.php" -exec sed -i 's/extends Object/extends BaseObject/g' {} \;

5. 설치만 해두고 안쓰던 서비스들이 죄다 재설치되면서 살아나면서 사용중인 서비스들과 포트충돌이 일어난다. --;;

기존에 포트가 충돌되는 서비스들의 포트를 변경해주거나 미사용 서비스들을 제거하여 충돌을 풀어준다. 

 

반응형
반응형

https://github.com/ReactTraining/react-router/releases/tag/v5.1.0

 

Release v5.1.0 · ReactTraining/react-router

Read the blog post List of commits Features Add useParams, useLocation, useHistory, and useRouteMatch hooks (d6224d6) Add support for forwardRef in (b5528ed) Add support for functions in <l...< p=""> </l...<>

github.com

PathVariable 을 받을 때 match 값을 hook으로 받을 수 있게 react router v5에서 추가되었다.

아래와 같이 사용하면 된다.

 

import { useRouteMatch } from 'react-router-dom';

const Component = () => {
	const { params }: any = useRouteMatch();
    
    // /path/:idx
    return (
    	<div>{params?.idx}</div>
    );
};

export default Component;
반응형

+ Recent posts