Se eu strace o comando lsb_release -i -s ...
strace -o strace.out lsb_release -i -s
Eu acho (do arquivo de saída strace.out ) que está lendo /etc/lsb-release
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
A saída de lsb_release -i -s é Ubuntu
O redirecionamento 2> /dev/null envia algum erro do comando para o esquecimento de dados
O operador || significa se (e somente se) o primeiro comando falhou, faça o segundo:
first command || second command
Portanto, se lsb_release -i -s errar, os erros vão para /dev/null e o comando echo Debian é executado. A saída disso é Debian
Então, para resumir:
Se lsb_release -s -i puder nos fornecer o nome do sistema atual, use-o e exiba a saída. Se não, apenas chame de "Debian"
O arquivo /etc/default/grub é usado para gerar o arquivo de configuração lido pelo GRUB ( /boot/grub/grub.cfg ) quando update-grub é chamado, então é lido quando o sistema de arquivos raiz real é montado.
Você deve executar sudo update-grub após editar o arquivo para que as alterações entrem em vigor.