다른 OS로 재부팅

다른 OS로 재부팅

두 개 이상의 OS가 설치된 노트북이 있습니다.

현재 OS를 종료하고 다른 OS로 부팅할 수 있는 명령이 있습니까?

windows->Ubuntu 또는 그 반대로

감사합니다

답변1

예, 부팅 선택에 Grub을 사용하면 가능합니다.

  • 리눅스로 부팅합니다.
  • 할 수 있게 하다뿌리로그인하거나 su또는 를 사용하여 권한을 부여하세요 sudo -s.
  • 기본값에 따라 또는 /boot/grub.cfg에 복사합니다 ./boot/grub.win/boot/grub.lin
  • 부팅 목록에서 대체 OS의 번호를 /etc/default/grub변경하려면 편집하세요 (0부터 계산).GRUB_DEFAULT=
  • 을 실행 update-grub한 다음 필요에 따라 또는 /boot/grub.cfg에 복사합니다 ./boot/grub.lin/boot/grub.win
  • GRUB_DEFAULT=의 이전 값으로 복원합니다 /etc/default/grub.
  • 생성 bootlinbootwin포함:
    cp /boot/grub.lin /boot.cfg또는cp /boot/grub.win /boot.cfg
    shutdown -r now

이제 우분투에서 bootlin또는 전화를 걸 수 있습니다 .bootwin

Windows에서도 동일한 종류의 작업을 수행해야 합니다.

  • 첫 번째 설치ext2fsd.
  • U:Ubuntu 파티션에 드라이브 문자(예: )를 할당 하고 쓰기 가능하게 만듭니다.
  • 이제 덮어쓰기에 적합한 명령을 생성 bootlin.cmd하고 포함할 수 있습니다 .bootwin.cmdcopyU:\boot\grub.cfg
    shutdown -r

로 부팅하는 경우 ntldr두 개의 사본으로 유사한 기술을 사용할 수 있습니다 boot.ini(먼저 읽기 전용, 시스템 및 숨김 속성을 지워야 할 수도 있음). 다른 부트로더와 함께 사용할 수 있는 유사한 기술이 있을 수 있지만, 이들과 함께 작동할 방법을 제안하는 것은 다른 사람들에게 맡깁니다.

주의: 나는ext2fsd읽기 전용 모드에서는 잘 작동하지만 쓰기 가능 모드에서는 사용한 적이 없습니다. 우분투 시스템을 손상시킬 수 있으므로 몇 번 시도하고 제대로 작동하는지 확인할 때까지 잘 백업해 두십시오. 바르게. Windows에서 편집하는 것이 더 안전할 수 있습니다.grub.cfg 현장에서C, 디렉토리 변경이 필요하지 않지만 동일한 파일 시스템의 작업 파일을 사용하지 않거나 이를 수행하기 위해 몇 줄을 작성하지 않는 일종의 Windows 인라인 편집기가 필요합니다 .

답변2

이러한 세부 정보는 UEFI가 GPT 시스템을 처리하는 방식과 정확히 일치하지 않을 수 있지만 MBR 기반 시스템을 설명합니다.

공식적인(이전) 표준은 마스터 부트 레코드에 있는 것을 사용하는 것입니다. "fdisk" 명령을 사용하여 MBR의 세부 정보를 변경할 수 있습니다.

기존 MBR에는 파티션에 플래그가 지정되었는지 여부를 지정하는 일부 비트가 포함되어 있습니다. 표준에서는 하나의 파티션에만 플래그가 지정되도록 지정하지만 부팅 코드에 의해 반드시 강제되는 것은 아닙니다. 사용자가 특정 파티션에 플래그를 지정하도록 지정하면 기존 fdisk 프로그램은 일반적으로 플래그가 지정된 다른 파티션을 확인하고 발견되면 플래그를 해제합니다. "선택된" 파티션과 같이 "플래그된" 파티션을 설명하는 데 사용되는 대체 단어가 있을 수 있습니다.

그런 다음 기존 MBR에는 일부 "코드"(명령어)가 포함되어 있습니다. 시스템이 부팅되면 이 코드가 실행됩니다. 코드는 MBR을 확인하여 각 파티션의 크기를 확인하고 어떤 파티션에 플래그가 지정되었는지 확인합니다. 그런 다음 플래그가 지정된 파티션에 있는 일부 추가 코드를 실행하여 부팅 프로세스를 계속합니다.

따라서 이는 널리 지원되는 표준입니다. 불행하게도 이 표준 방법에는 fdisk에 들어가서 수동으로 상호 작용하는 작업이 포함됩니다. 따라서 이는 실행할 수 있는 단일 프로그램이 아닙니다. 그러나 이는 가장 널리 지원되는 표준입니다.

인용하려면OpenBSD FAQ: 멀티부팅:

거의 모든 OS는 이를 수행하는 프로그램을 제공합니다. OpenBSD는 fdisk(8)이고 비슷한 이름의 프로그램이 Windows 9x와 DOS 및 기타 여러 운영 체제에 있습니다. 이는 종료 및 재부팅에 오랜 시간이 걸리는 OS 또는 시스템에 매우 바람직할 수 있습니다. 이를 설정하고 재부팅 프로세스를 시작한 다음 자리를 떠나 커피 한 잔을 들고 부팅된 시스템으로 돌아올 수 있습니다. 당신이 원합니다. 다음 OS를 선택하는 마법의 순간을 기다리지 않아도 됩니다.

사람들이 화려한 대체품을 만들었음에도 불구하고 가장 널리 지원되는 공식 프로세스의 장점을 그렇게 자주 간과할 수 있다는 것은 재밌습니다.

요청된 질문이 비대화형을 지정하지는 않았지만 이것이 원하는 만큼 자동화되지 않을 수 있다는 것을 알고 있습니다. 따라서 간단한 대답은 '예, 그러한 명령이 있습니다'입니다. "fdisk" 입니다.

이제 몇 가지 다른 변형이 있으므로 그러한 솔루션을 찾고 있다면 자동화가 가능할 것입니다. 운영 체제에서 "boot" 또는 이와 유사한 명령이 있는지 확인하고 싶을 수도 있습니다. 이전 OS/2 운영 체제에는 시작된 운영 체제를 수정할 수 있는 "BOOT" 명령이 포함되어 있다는 것을 알고 있습니다. 실행해야 하는 정확한 명령은 실제로 사용하는 부팅 코드에 따라 다릅니다. 사용 가능한 여러 "부팅 관리자" 프로그램이 있으며 이 기능은 이제 더 많은 운영 체제에 내장되어 있습니다. 그것은 좋은 소식입니다. 나쁜 소식은 프로세스가 표준화되지 않았기 때문에 모든 사람의 다양한 변형과 ​​잘 통합되는 하나의 특정 프로세스만 제공할 수는 없다는 것입니다. 기본적으로 솔루션을 선택해서 사용해야 합니다. 주요 관심사는 여러 운영 체제에서 수행할 수 있고 시스템이 부팅되는 동안 처리되는 디스크 섹션에 쓰는 데 사용할 수 있는 프로세스를 찾는 것입니다. 이러한 섹션은 일반적으로 파일 시스템의 일부가 아니며 바이러스 백신 기능은 개인이 디스크의 중요한 섹션에 쓸 수 있는 능력을 제한하려고 시도할 수 있습니다.

기본적으로 프로세스에는 파티션의 플래그 비트 변경, MBR의 부팅 코드 변경, MBR이 부팅을 계속하는 데 사용하는 파티션에 있는 코드 동작 변경이 포함됩니다. 이것이 세 가지 서로 다른 접근 방식이고, 각 접근 방식은 실제로 사용 가능한 다양한 옵션 중 일부에서 사용됩니다.

네 번째 접근 방식은 BIOS가 부팅되는 디스크를 변경하는 것입니다. 그러나 이 접근 방식은 전통적으로 서로 다른 시스템 간의 호환성이 훨씬 낮았기 때문에 실제로 사용되는 접근 방식보다는 이론적 가능성에 더 가깝습니다. (그러나 많은 사용자는 종종 F12 또는 기타 키를 눌러 부팅 메뉴를 불러오는 방식으로 이 접근 방식을 대화식으로 사용했습니다. 때로는 BIOS 설정에 들어가서 후속 부팅에 사용할 기본 디스크를 변경하는 경우도 있습니다.)

가장 일반적인 방법은 아마도 시스템이 하나의 운영 체제로 부팅될 때 전체 MBR의 512바이트 이미지를 생성한 다음, 시스템이 다른 운영 체제로 부팅될 때 전체 MBR의 512바이트 이미지를 저장하는 것입니다. 그런 다음 필요한 소프트웨어를 사용하여 해당 512바이트를 디스크의 처음 512바이트에 직접 씁니다. ("dd"와 같은 것이 트릭을 수행할 것입니다.) 가장 큰 문제는 운영 체제의 허가를 받는 것일 수 있습니다.

AFH의 답변은 Linux에서 grub을 사용하여 이것이 어떻게 수행될 수 있는지 보여주는 것 같습니다. XP/2003 시절의 Windows 부팅 관리자는 이러한 종류의 섹터 이미지("Boot.ini" 파일에서 참조됨)를 사용하므로 Boot.ini 텍스트 파일을 변경하여 Windows를 종료할 수 있었습니다. (해당 프로세스는 Vista/2008에서 변경되었을 수 있으므로 최신 시스템에서 시도하기 전에 새 부팅 관리자를 확인하십시오.) 이러한 솔루션을 구현하는 정확한 방법은 사용을 중단하려는 운영 체제에 따라 다릅니다. (예: Microsoft Windows 버전)

답변3

반면에 하드웨어 재부팅을 호출하는 것은 전원을 껐다가 다시 켜는 것과 거의 동일합니다. 따라서 모든 RAM 메모리가 손실됩니다. 전원을 켜면 부팅 프로세스가 마더보드 펌웨어에 의해 처리됩니다. 마더보드 펌웨어에 대해 알려주고 싶다면메시지, 우리는 숫양에 그런 메시지를 남겨서는 안됩니다. 하지만 우리는 디스크(또는 다른 영구 미디어)에 무엇이든 쓸 수 있습니다. efi는 비휘발성 변수를 설정하는 메커니즘을 제공한다고 믿습니다.

앞서 언급한 접근 방식 외에도 Linux 커널에는켁섹하드웨어가 다운되지 않고 다른 시스템에 "제어권을 넘겨주는" 기능입니다. Windows 커널을 로더 프로그램에 직접 kexec'화할 수는 없지만 로더 프로그램으로 kexec'ing하고 로더 프로그램이 Windows 시스템을 초기화하도록 하는 해결 방법이 있습니다.

관련 정보