Você pode investigar usando o apt-cache:
$ apt-cache show linux-virtual
dá, entre outras coisas:
Depends: linux-image-virtual (= 3.16.0.25.26), linux-headers-virtual (= 3.16.0.25.26)
Description-en: Minimal Generic Linux kernel and headers
This package will always depend on linux-image-virtual and
linux-headers-virtual.
Na linha Depends, o linux-virtual é usado como um meta-pacote para instalar o linux-image-virtual e linux-header-virtual.
$ apt-cache show linux-image-virtual
dá:
Depends: linux-image-3.16.0-23-generic
Description-en: This package will always depend on the latest minimal generic kernel image.
This package will always depend on the latest minimal generic kernel image
used for virtual instances.
Em exibição:
$ apt-cache show linux-image-extra-virtual
dá:
Depends: linux-image-generic (= 3.16.0.23.24)
Description-en: Transitional package.
This package will always depend on linux-image-generic.
Há uma diferença sutil aqui na linha Depends. Você pode ver o mesmo usando o comando acima:
$ apt-cache show linux-image-generic
lista essas dependências:
Depends: linux-image-3.16.0-23-generic, linux-image-extra-3.16.0-23-generic, linux-firmware, thermald
Em essência, o linux-image-generic extrai dependências extras sobre o linux-image-extra-VERSION-generic. Dê uma olhada em esta resposta para mais detalhes.
Para resumir:
- linux-virtual instala o linux-image-virtual e o linux-headers-virtual
- linux-image-virtual é idêntico ao linux-image-VERSION-generic O
- linux-image-extra-virtual é um superconjunto do linux-image-virtual e é idêntico ao linux-image-generic