현재 기본 OS를 Window 7 or 10가 아닌 Linux ,즉 Ubuntu로 사용해야 하기때문에 아래와 같은 작업을 실행한다.
- USB 저장장치기반으로 시동디스크 생성 (ISO Image기반)
- BIOS에서 Booting 우선순위를 USB 변경
- Linux(Ubuntu) 설치 진행
기존생각은 Window에서 주로 임베디드에서 많이 사용하던 Win32DiskImager or Echer으로 사용하여 만들 생각이었다
하지만, Ubuntu의 Startup Disk Program 와 Window 에서는 Rufus 이용하여 사용하겠다.
하지만, Ubuntu의 Startup Disk Program 와 Window 에서는 Rufus 이용하여 사용하겠다.
- Linux와 Window 와 USB Grub과 함께 설치 방법
아래에서 USB Boot Disk를 Grub과 함께 만드는 방법을 소개주셔서 감사하다.
추후 시간이 있다면 이부분을 한번 따라 해보겠다.
https://bagjunggyu.blogspot.com/2013/10/linux-booting-usb-grub.html
1.1 Ubuntu 에서 Ubuntu USB 시동디스크 만들기
우선 현재 사용 중인 OS가 Ubuntu 일 경우 하도록 하며, 아래의 Startup Disk Program을 이용하여 만들어보자
Ubuntu에 USB 시동디스크 설치프로그램은 기본설치
추후 시간이 있다면 이부분을 한번 따라 해보겠다.
https://bagjunggyu.blogspot.com/2013/10/linux-booting-usb-grub.html
1.1 Ubuntu 에서 Ubuntu USB 시동디스크 만들기
우선 현재 사용 중인 OS가 Ubuntu 일 경우 하도록 하며, 아래의 Startup Disk Program을 이용하여 만들어보자
Ubuntu에 USB 시동디스크 설치프로그램은 기본설치
(Ubuntu 16.04 이후것은 확인)
- 사용프로그램 (Ubuntu에 기본내장)
- Ubuntu에서 시동디스크 만들기
- Startup or 시동디스크 검색
- 시동디스크 설치 실행
- Ubuntu Image 를 USB에 설치
- Ubuntu 실행 Startup Disk Program 찾기
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu?_ga=2.105790597.76344796.1547599988-873301564.1547599988#0 |
- Make Startup Disk
USB Ubuntu Image 만들기
아래문서참고
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu?_ga=2.105790597.76344796.1547599988-873301564.1547599988#0
1.2 Window에서 Ubuntu/Window USB 시동디스크 만들기
우선 현재 사용 중인 OS가 Window 일 경우 하도록 하며, Echer이외에도 Rufus는 프로그램이 존재하는데, 파티션과 UEFI 설정가능
Image만 USB에 Write하면 될 줄 알았는데, 옵션이 다양하다
Window USB 시동디스크 만들기
https://ahyuo79.blogspot.com/2019/08/lenovo-laptop.html
2. PC의 BIOS와 UEFI 기본이해
PC의 BIOS(Basic Input/Output System)는 이전처럼 간단하게 작동이 되지 않으며,
2.2 UEFI 지원 BIOS
UEFI(Unified Extensible Firmware Interface) 의 경우는
결론적으로 UEFI는 BIOS에 부족한 부분을 외부저장장치에 EFI_SYSTEM_PARTITION이 별도 생성하여 BIOS를 확장하는 구조이다.
ESD Wiki 자료
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#EFI_system_partition
UEFI Interface
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
Hardware는 PC의 Mainboard와 CPU 및 기타 Device를 말할 것이며, Firmware와 EFI는 BIOS기능을 말한다.
https://en.wikipedia.org/wiki/EFI_system_partition
EFI BOOT Manager와 EFI Driver의 동작방법을 이해해보면, 아래의 Blue색은 EFI의 전체 시스템이며, OS Loader와 어떻게 작용하는지 이해해보자.
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu?_ga=2.105790597.76344796.1547599988-873301564.1547599988#0 |
아래문서참고
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu?_ga=2.105790597.76344796.1547599988-873301564.1547599988#0
- 동작방식
1.2 Window에서 Ubuntu/Window USB 시동디스크 만들기
우선 현재 사용 중인 OS가 Window 일 경우 하도록 하며, Echer이외에도 Rufus는 프로그램이 존재하는데, 파티션과 UEFI 설정가능
Image만 USB에 Write하면 될 줄 알았는데, 옵션이 다양하다
- 사용프로그램 및 Download
Rufus Download
https://rufus.ie/
참고자료
http://w3devlabs.net/wp/?p=24400
https://webnautes.tistory.com/1146
1.3 Window에서 Window 10 Image 생성
MS사에서 제공해주는 방법으로 상위 RUFUS 대신 이용해보도록 하자.
https://rufus.ie/
- Rufus 설정포인트
- 파티션을 MBR or GPT로 설정
- 대상시스템 (BIOS 또는 UEFI or UEFI)
참고자료
http://w3devlabs.net/wp/?p=24400
https://webnautes.tistory.com/1146
1.3 Window에서 Window 10 Image 생성
MS사에서 제공해주는 방법으로 상위 RUFUS 대신 이용해보도록 하자.
Window 10 Image Download 및 USB Image 생성
Window USB 시동디스크 만들기
https://ahyuo79.blogspot.com/2019/08/lenovo-laptop.html
1.4 Window 에서 이외 Tool
임베디드에서 많이 사용하는 Win32DiskImager or Echer 사용해도 상관은 없다.
다만 BIOS에서 UEFI가 아닌 Legacy로 사용
Download Win32DiskImager
Download Etcher
2. PC의 BIOS와 UEFI 기본이해
PC의 BIOS(Basic Input/Output System)는 이전처럼 간단하게 작동이 되지 않으며,
최신 UEFI(Unified Extensible Firmware Interface)을 적용하며 점점 변경되어 가고 있다고 한다
이전 BIOS를 Legacy BIOS라고 정의하며, 최신 BIOS인 UEFI이라고 명명한다고 한다.
이전 BIOS를 Legacy BIOS라고 정의하며, 최신 BIOS인 UEFI이라고 명명한다고 한다.
Laptop의 BIOS 설정에 가면 상위처럼 이름이 정해져 있다.
2.1 Legacy BIOS
Legacy BIOS의 경우는
이전 부팅방식인 Boot Sector의 MBR 정보와 Bootcode를 가지고 Booting을 했으며, 기본방식으로 동작한다.
하지만, HDD 용량제한과 BIOS의 기능제한이 문제가 되며, 결론적으로 GPT는 지원을 하지는 못한다.
- BIOS -> HDD의 MBR
https://en.wikipedia.org/wiki/BIOS |
2.2 UEFI 지원 BIOS
UEFI(Unified Extensible Firmware Interface) 의 경우는
기존 BIOS(Legacy BIOS)와 달리 BootSector(MBR)에만 지원하지 않고 GPT 지원하기되어 대용량 HDD를 지원가능하다.
UEFI Spec은 Boot Manager 라는 것 정의하고, Computer가 Power up이 되었을 때,
UEFI Spec은 Boot Manager 라는 것 정의하고, Computer가 Power up이 되었을 때,
Boot Manager는 이미 사용자가 설정된 Boot Configuration 체크하여 동작하고 Boot를 결정한다
UEFI의 경우 일반적으로 GPT(GUID Partition Table)을 이용한다고 한다.
- UEFI -> HDD 의 EFI Partition -> EFI Bootloader
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Booting |
결론적으로 UEFI는 BIOS에 부족한 부분을 외부저장장치에 EFI_SYSTEM_PARTITION이 별도 생성하여 BIOS를 확장하는 구조이다.
기존의 BIOS에서 할 수 없었던 기능들을 이곳에 추가 확장을 하는 것이다.
- EFI system partition (약어, ESD)
MBR과 GPT Partition을 기존과 동일하게 설정하기 때문에 이 부분을 이해한다.
CD Disk는 보니 다르게 동작하니, 착각하지 말자.
ESD Wiki 자료
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#EFI_system_partition
- EFI 관련파일의 구성과 PARTITION
EFI_SYSTEM_PARTITION -- /EFI/BOOT/BOOT machine_type_short_name.EFI // 이런식으로 이름을 구성 EFI_SYSTEM_PARTITION -- /efi/BOOT/BOOTX64.EFI // x86-64 일 경우 (상위와 같이 적용) EFI_SYSTEM_PARTITION -- /efi\boot\bootaa64.efi // ARM64 일 경우 (상위와 같이 적용)
UEFI Interface
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
- EFI의 시스템의 이해
Hardware는 PC의 Mainboard와 CPU 및 기타 Device를 말할 것이며, Firmware와 EFI는 BIOS기능을 말한다.
https://en.wikipedia.org/wiki/EFI_system_partition
- Interaction between the EFI Boot manager and EFI drivers
EFI BOOT Manager와 EFI Driver의 동작방법을 이해해보면, 아래의 Blue색은 EFI의 전체 시스템이며, OS Loader와 어떻게 작용하는지 이해해보자.
- 좌측그림 EFI Binaries 파일
- 우측그림 Boot Manager
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Applications
크게보면 아래 두가지 형태로 나누어 볼수 있을 것 같으며, 세부적인 Booting은 아래에서 참조하자.
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Booting
UEFI를 보면서 Shell 제공뿐만 아니라 기존의 BIOS가 Logo 및 GUI가 지원이 되는 것을 보고 사실 많이 놀랐다.
너무 옛날버전의 BIOS만 봐서 그런지 최신 BIOS를 보니 낯설기만 해서 일단 상위처럼 이해만 하고 넘어가자.
다른 Booting 모드도 제공하는 것 같은데, 추후 사용할 일 있다면 그때 알아가자.
궁금한것은 UEFI로 확장하여, 상위 LOGO와 GUI 환경을 제공하는것인지가 궁금하다. 아직 이해가 되지 않아 이부분은 추후에 확인
UEFI의 이해 참고자료
https://namu.wiki/w/UEFI
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
https://ko.wikipedia.org/wiki/%ED%86%B5%EC%9D%BC_%ED%99%95%EC%9E%A5_%ED%8E%8C%EC%9B%A8%EC%96%B4_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4
https://msdn.microsoft.com/ko-kr/library/windows/hardware/dn898495(v=vs.85).aspx
3. MBR 와 GPT 이해 와 차이
- UEFI Booting
크게보면 아래 두가지 형태로 나누어 볼수 있을 것 같으며, 세부적인 Booting은 아래에서 참조하자.
- UEFI-GPT booting
- UEFI-MBR
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Booting
UEFI를 보면서 Shell 제공뿐만 아니라 기존의 BIOS가 Logo 및 GUI가 지원이 되는 것을 보고 사실 많이 놀랐다.
너무 옛날버전의 BIOS만 봐서 그런지 최신 BIOS를 보니 낯설기만 해서 일단 상위처럼 이해만 하고 넘어가자.
다른 Booting 모드도 제공하는 것 같은데, 추후 사용할 일 있다면 그때 알아가자.
궁금한것은 UEFI로 확장하여, 상위 LOGO와 GUI 환경을 제공하는것인지가 궁금하다. 아직 이해가 되지 않아 이부분은 추후에 확인
UEFI의 이해 참고자료
https://namu.wiki/w/UEFI
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
https://ko.wikipedia.org/wiki/%ED%86%B5%EC%9D%BC_%ED%99%95%EC%9E%A5_%ED%8E%8C%EC%9B%A8%EC%96%B4_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4
https://msdn.microsoft.com/ko-kr/library/windows/hardware/dn898495(v=vs.85).aspx
3. MBR 와 GPT 이해 와 차이
- 기존 MBR(Master Boot Record)
MBR(Master Boot Record)은 기존부터 사용한 방식이며, HDD Disk의 Sector 0 으로 BIOS가 이 부분으로 부팅하면서 Partition 체크하는 부분이다.
역할은 Boot Code 와 Partition Entry , 즉 Partition 정보이다.
하지만, 용량이 제한되어 있다보니, 기능이 제한적일 수 밖에 없다.
MBR(Master Boot Record)
BootCode 와 Partition Entry 들어감
https://en.wikipedia.org/wiki/Master_boot_record
https://en.wikipedia.org/wiki/Master_boot_record
- GPT기반 변경
GPT(Sector 1)는 하드디스크 용량증가로 인하여 MBR의 용량문제 개선하기 위해서, MBR(Sector 0) Partition 기능에 확장제공하는 방식이다.
현재는 GPT는 MBR에 기존과 다른 구조로 사용하여 확장되어지는 구조이며, 이에 사용되는 툴도 둘다 다르다.
GPT(GUID Patition Table)
- Bootloader(GRUB2) 비교
둘 다 Extend Partition에 GRUB을 넣으려고 하는 것이며, 각 차이를 알아두도록 하자.
- boot.img: MBR에 저장되어지는 boot image로 core.img를 접근
- core.img: GRUB의 core image로 /boot/grub을 접근
- MBR or GPT 일 경우, GRUB2 저장
https://en.wikipedia.org/wiki/Boot_sector |
Sector Size,LBA 512 기준
- Example 1: MBR사용
- Sector 0: MBR
- Sector 1~2047
- Example 2: GPT(GUID Partition Table)사용 (아래 그림참조)
- Sector 0: MBR
- Sector 1: Primary GPT Header
- Sector 2~33: Partition Entry Array 128개 (128x128/512=32 Sector)
- GUID Partition Entry: 128byte
- Partition type GUID: 아래 다시 설명
- Unique Partition GUID
- ... 기타 등등 (상위 링크 참조)
- Empty Space:
- SDA1: EFI System Partition(FAT32) (각 Partition GUID 참조)
- SDA2: BIOS boot Partition (각 Partition GUID 참조)
- SDA3: Linux / Root File system (각 Partition GUID 참조)
- SDA4: Linux /boot File system (/boot/grub) (각 Partition GUID 참조)
Unix/Linux계열: 각 OS마다 조금씩 다르며, 링크를 참조하여 확인
Window 32 bit : UEFI 허용안하며, GPT도 미지원
Window 64 bit : Disk 당 GPT 128 Partition 까지 지원
GPT(GUID Partition Table) 사용할 경우 아래의 Globally unique identifier (GUID)는 공용으로 사용하는 ID이므로, 아래의 wiki에서 각각의 ID의 의미를 알아두고 이해하자.
세부사항 GUID 정보
- MBR partition scheme: 024DEE41-33E7-11D3-9D69-0008C781F39F
- EFI System partition: C12A7328-F81F-11D2-BA4B-00A0C93EC93B
- BIOS boot partition: 21686148-6449-6E6F-744E-656564454649
- Sony boot partition: F4019732-066E-4E12-8273-346C5641494F
- Lenovo boot partition: BFBFAFE7-A34F-448A-9A5B-6213EB736C22
이외 OS 관련된 GUID 와 각 제조회사 GUID 아주 다양하다
Window/Linux/macOS/Android/QNX 등 각 OS GUID는 반드시 확인
https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
3.1 MBR 와 GPT의 Partition Tool
기존에 MBR의 경우는 fdisk라는 것을 이용하여 MBR Parttion table을 설정하고 이를 진행했지만, GPT는 gdisk,gparted 라는 Tool을 사용한다.
https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
3.1 MBR 와 GPT의 Partition Tool
기존에 MBR의 경우는 fdisk라는 것을 이용하여 MBR Parttion table을 설정하고 이를 진행했지만, GPT는 gdisk,gparted 라는 Tool을 사용한다.
아래와 같이 사용되어지는 Tool이 변경되어진다.
3.2 MBR과 GPT의 내부구성
위에서 설명했듯이 MBR과 GPT도 중요한것은 내부구성을 파악하고 Partition을 어떻게 구분하는지 이부분을 알아보자.
아래의 wiki를 보면 대충이해는 가지만, 세부적인것은 더 자세히 알아봐야할 것 같다.
- MBR : fdisk
- GPT : gdisk , gparted
3.2 MBR과 GPT의 내부구성
위에서 설명했듯이 MBR과 GPT도 중요한것은 내부구성을 파악하고 Partition을 어떻게 구분하는지 이부분을 알아보자.
아래의 wiki를 보면 대충이해는 가지만, 세부적인것은 더 자세히 알아봐야할 것 같다.
- MBR(Master Boot Record) 사용
아래의 LBA0에 모든 정보를 넣는 구조이다.
나도 너무 오래되어서 까먹으며, 추후 다시 한번 자세히 정독하자
https://en.wikipedia.org/wiki/Master_boot_record
https://ko.wikipedia.org/wiki/%EB%A7%88%EC%8A%A4%ED%84%B0_%EB%B6%80%ED%8A%B8_%EB%A0%88%EC%BD%94%EB%93%9C
https://en.wikipedia.org/wiki/Disk_partitioning
https://en.wikipedia.org/wiki/Extended_boot_record
https://en.wikipedia.org/wiki/Master_boot_record
https://ko.wikipedia.org/wiki/%EB%A7%88%EC%8A%A4%ED%84%B0_%EB%B6%80%ED%8A%B8_%EB%A0%88%EC%BD%94%EB%93%9C
https://en.wikipedia.org/wiki/Disk_partitioning
https://en.wikipedia.org/wiki/Extended_boot_record
- GPT(GUID Partition Table) 사용
우선 Primary GPT 와 Secodary GPT 기반으로 아래와 같이 볼 수 있고, 그 안에 각 Patition Entry Point가 존재한다.
GUID 방식은 나도 구조를 이전에도 본적이 없어 아래의 Wiki로 파악을 하고 있다.
지금 봐도 좀 혼동이 된다.
https://en.wikipedia.org/wiki/GUID_Partition_Table
https://ko.wikipedia.org/wiki/GUID_%ED%8C%8C%ED%8B%B0%EC%85%98_%ED%85%8C%EC%9D%B4%EB%B8%94
지금 봐도 좀 혼동이 된다.
https://en.wikipedia.org/wiki/GUID_Partition_Table
https://ko.wikipedia.org/wiki/GUID_%ED%8C%8C%ED%8B%B0%EC%85%98_%ED%85%8C%EC%9D%B4%EB%B8%94