Esto no es posible en general: el núcleo no retiene los valores originales (al menos en Linux no lo hace, y esto probablemente sea cierto para otras variantes de Unix). El valor de la configuración se almacena en una variable; Cuando cambia la configuración, la memoria que contiene la variable se actualiza irreversiblemente.
Para la mayoría de las configuraciones, el valor inicial de la variable es una constante que se determina en tiempo de compilación y se almacena en el binario del núcleo. Entonces, en principio, podría inspeccionar el binario de su núcleo para encontrar el valor predeterminado. Tendría que ubicar el símbolo correspondiente a la configuración que le interesa y seguir la dirección de ese símbolo en el binario del núcleo. Arrancar su kernel en una máquina virtual sería menos trabajo.
Para la mayoría de las configuraciones, puede buscar en la fuente del núcleo kernel/sysctl.c
y en otros archivos. Verás definiciones como
{
.procname = "rmem_max",
.data = &sysctl_rmem_max,
…
},
(in net/core/sysctl_net_core.c
), desde el cual puede rastrear la inicialización de la sysctl_rmem_max
variable . Si bien este se inicializa a partir de una constante, se necesita bastante lectura del código C para expandirse.