Eu tenho um laptop com mais de um sistema operacional.
Existe algum comando pelo qual eu possa desligar o sistema operacional atual e inicializar em outro sistema operacional?
windows->Ubuntu e vice-versa
obrigado
Responder1
Sim, é possível se você usar o Grub para seleção de inicialização: –
- Inicialize no Linux.
- Habilitarraizprivilégios fazendo login ou usando
su
ousudo -s
. - Copie
/boot/grub.cfg
para/boot/grub.win
ou/boot/grub.lin
, dependendo do seu padrão. - Edite
/etc/default/grub
para alterarGRUB_DEFAULT=
o número do sistema operacional alternativo na lista de inicialização (contando a partir de zero). - Execute
update-grub
e copie/boot/grub.cfg
para/boot/grub.lin
ou/boot/grub.win
, conforme apropriado. - Restaure
GRUB_DEFAULT=
para seu valor anterior em/etc/default/grub
. - Criar
bootlin
ebootwin
conter:cp /boot/grub.lin /boot.cfg
oucp /boot/grub.win /boot.cfg
shutdown -r now
Agora você pode ligar bootlin
ou bootwin
do Ubuntu.
No Windows, você precisará fazer o mesmo: –
- Primeira instalaçãoext2fsd.
- Atribua uma letra de unidade (por exemplo
U:
, ) à partição do Ubuntu e torne-a gravável. - Agora você pode criar
bootlin.cmd
ebootwin.cmd
conter o comando apropriadocopy
para substituirU:\boot\grub.cfg
, seguido por:shutdown -r
Se você inicializar com ntldr
você pode usar uma técnica semelhante com duas cópias boot.ini
(talvez seja necessário limpar os atributos Somente leitura, Sistema e Oculto primeiro). Pode haver uma técnica semelhante que você pode usar com outros gerenciadores de inicialização, mas deixo para outros sugerirem o que funcionará com eles.
CUIDADO: eu achoext2fsdfunciona bem no modo somente leitura, mas nunca o usei no modo gravável: esteja ciente de que isso pode corromper seu sistema Ubuntu, portanto, certifique-se de ter um bom backup até tentar algumas vezes e ter certeza de que funciona corretamente. Pode ser mais seguro no Windows editargrub.cfg
no local, o que não exigirá alterações de diretório, mas você precisará de algum tipo de editor em linha do Windows que não use arquivos de trabalho no mesmo sistema de arquivos ou de algumas linhas para C
fazer isso.
Responder2
Esses detalhes podem não corresponder exatamente ao modo como o UEFI lida com sistemas GPT, mas descrevem sistemas baseados em MBR.
O padrão oficial (antigo) é usar o que está no Master Boot Record. O comando “fdisk” pode ser usado para alterar os detalhes do MBR.
O MBR tradicional contém alguns bits que especificam se uma partição está sinalizada. O padrão especifica que apenas uma partição é sinalizada, embora isso não seja necessariamente imposto pelo código de inicialização. Quando um usuário especifica que uma partição específica deve ser sinalizada, um programa fdisk tradicional normalmente verifica se há outra partição sinalizada e, se alguma for encontrada, desmarca-a. Pode haver palavras alternativas usadas para descrever uma partição "sinalizada", como uma partição "selecionada".
Então, o MBR tradicional contém algum “código” (instruções). Quando o sistema é inicializado, este código é executado. O código verificará o MBR para ver o tamanho de cada partição e qual partição está sinalizada. Em seguida, ele continuará o processo de inicialização executando algum código adicional localizado na partição sinalizada.
Então, esse é o padrão amplamente suportado. Infelizmente, este método padrão envolve entrar no fdisk e interagir com ele manualmente. Portanto, esse não é apenas um programa que você pode executar. É, no entanto, o padrão mais amplamente suportado.
CitarPerguntas frequentes sobre o OpenBSD: inicialização múltipla:
Praticamente todo sistema operacional oferece um programa para fazer isso; O do OpenBSD é o fdisk(8), programas com nomes semelhantes estão no Windows 9x e DOS, e em muitos outros sistemas operacionais. Isso pode ser altamente desejável para sistemas operacionais ou sistemas que demoram muito para desligar e reinicializar - você pode configurá-lo e iniciar o processo de reinicialização, depois ir embora, pegar uma xícara de café e voltar para o sistema inicializado do jeito você quer - sem esperar pelo Momento Mágico para selecionar o próximo sistema operacional.
É engraçado como, com todas as substituições sofisticadas que as pessoas fizeram, as vantagens do processo oficial mais amplamente apoiado podem ser negligenciadas com tanta frequência.
Eu sei que isso pode não ser tão automatizado quanto o desejado, embora a pergunta feita não especificasse a não interatividade. Portanto, a resposta simples é que sim, existe tal comando. É "fdisk".
Agora, existem algumas outras variações e, portanto, a automação provavelmente será possível se você estiver procurando essa solução. Você pode verificar se há um comando chamado "boot" em seus sistemas operacionais ou algo parecido; Eu sei que o antigo sistema operacional OS/2 continha um comando "BOOT" que poderia modificar qual sistema operacional foi iniciado. Os comandos precisos que você precisa executar dependem do código de inicialização que você realmente usa. Existem vários programas de “gerenciador de inicialização” disponíveis e essa funcionalidade agora está incorporada em mais sistemas operacionais. Essa é a boa notícia. A má notícia é que o processo não é tão padronizado, então não posso fornecer apenas um processo específico que se integre bem com as diferentes variações de cada pessoa. Basicamente, você precisa escolher uma solução e usá-la. A principal preocupação provavelmente será encontrar um processo que possa ser executado a partir de vários sistemas operacionais e que possa ser usado para gravar nas seções do disco que são manipuladas enquanto o sistema é inicializado. Essas seções normalmente não fazem parte de um sistema de arquivos e os recursos antivírus podem tentar limitar a capacidade de uma pessoa gravar nessas seções críticas do disco.
Basicamente, o processo envolverá a alteração dos bits de sinalização de uma partição, ou a alteração do código de inicialização do MBR, ou a alteração do comportamento do código que está na partição que o MBR usa para continuar a inicialização. Portanto, são três abordagens diferentes, e cada uma dessas abordagens é realmente usada por algumas das diferentes opções disponíveis.
Uma quarta abordagem pode ser alterar o disco a partir do qual o BIOS é inicializado. No entanto, esta abordagem tem sido tradicionalmente muito menos compatível entre diferentes sistemas, de modo que essa abordagem é mais uma possibilidade teórica do que algo que é realmente utilizado. (Embora muitos usuários tenham usado essa abordagem de forma interativa, geralmente pressionando F12 ou algo assim para abrir um menu de inicialização; às vezes, eles simplesmente entram na configuração do BIOS e alteram o disco padrão que será usado nas inicializações subsequentes.)
O método mais comum é provavelmente criar uma imagem de 512 bytes de todo o MBR quando o sistema inicializa em um sistema operacional e, em seguida, salvar uma imagem de 512 bytes de todo o MBR quando o sistema inicializa com um sistema operacional diferente. Em seguida, use qualquer software necessário para gravar diretamente esses 512 bytes nos primeiros 512 bytes do disco. (Algo como "dd" resolveria.) O maior desafio com isso pode ser apenas ter permissão do sistema operacional.
A resposta do AFH parece mostrar como isso pode ser feito no Linux com o grub. O Gerenciador de inicialização do Windows da época do XP/2003 usava esse tipo de imagens de setor (que seriam referenciadas por um arquivo "Boot.ini"), portanto, sair do Windows poderia ser feito alterando o arquivo de texto Boot.ini. (Esse processo pode ter mudado no Vista/2008, então verifique o novo gerenciador de inicialização antes de tentar isso em sistemas mais novos.) Uma maneira precisa de implementar qualquer uma dessas soluções dependerá de qual sistema operacional você está tentando parar de usar. (Por exemplo: qual versão do Microsoft Windows.)
Responder3
enquanto quando chamamos uma reinicialização de hardware, é mais ou menos idêntico a desligar e ligar posteriormente. assim toda a memória RAM é perdida. e quando ligamos, o processo de inicialização é controlado pelo firmware da placa-mãe. se quisermos contar alguma coisa ao firmware da placa-mãemensagem, não devemos deixar tal mensagem no carneiro . mas podemos escrever algo (qualquer coisa) no disco (ou alguma outra mídia permanente, e acredito que o efi fornece um mecanismo para definir variáveis não voláteis).
além das abordagens mencionadas, os kernels do Linux têmkexecfuncionalidade para "entregar o controle" a outro sistema sem que o hardware fique inativo. embora um kernel do Windows não possa ser diretamente kexec'ed, existe uma solução alternativa, kexec'ing em um programa carregador e deixar o programa carregador inicializar o sistema Windows.