Esta postagem pode estar relacionada ao seu problema . Se você quiser criar uma instância Linux personalizada que carregue as botas na RAM este post parece ser um bom começo . Você também pode querer fazer referência a este post também para informações adicionais sobre o assunto.
Para responder à sua pergunta, sim, é possível criar uma inicialização ao vivo do Linux que pode ser carregada na RAM. Os sistemas operacionais e a configuração que você está usando fazem isso. Se você estiver procurando por um guia sobre como configurar seu próprio Live Boot, você pode referenciar os links no início deste post e conduzir algumas pesquisas para descobrir o que funciona melhor para o seu caso de uso.
No entanto, a segunda parte da sua pergunta faz referência à remoção da unidade USB após o carregamento do sistema operacional. Você pode configurar o sistema operacional para carregar na RAM, permitindo a remoção do dispositivo USB, mas os aplicativos localizados no dispositivo não serão carregados conforme você descobriu. Isso ocorre porque eles não foram carregados na RAM e os arquivos necessários para iniciar o aplicativo ainda estão localizados na unidade removida. Existe uma maneira de fazer isso, mas ...
Existe um propósito para remover o dispositivo USB enquanto você o está usando? Configurando tudo para ser carregado e executado fora da RAM pode funcionar, mas sem uma unidade para gravar as alterações para nada será persistente. Uma vez que você desligou um computador em que você utilizou o Live Boot e removeu o dispositivo, haverá muito pouco, se algum, rastreio do sistema operacional de inicialização ao vivo. Uma vez ligado e um sistema operacional ou algum outro tipo de entrada é carregado na memória RAM, todos os vestígios da Inicialização ao Vivo original vão até onde eu sei. Não há necessidade de reinventar a roda aqui, sua configuração faz o que você está pedindo, mas não a parte sobre como remover a unidade enquanto ainda está em uso.