Может имеет смысл тупо запустить в консоли
while ! [ -z "$(ping -c 1 127.0.0.1 | grep "1 received, 0% packet loss")" ] ; do sudo lsmod | awk {'print $1'} > "/tmp/catch-$(date "+%Y-%m-%d_%H-%M_%S-%N").log" ; sleep 5 ; done ; sudo lsmod | awk {'print $1'} > "/tmp/catch-$(date "+%Y-%m-%d_%H-%M_%S-%N").log"
И ждать пока не пропадёт сеть. Знаком, что сеть пропала, будет появление приглашения к вводу команды в консоли - как только появится первый же пропавший пинг, так цикл прервётся и появится приглашение к вводу команды в консоли. Тут и начинать сравнивать несколько последних файлов /tmp/catch-*.log , сравнивать как удобнее - по содержимому, по числу строк, контрольным суммам получаемым md5sum и т.п.
Команда эта пускает один пинг, и если пинг вернулся, то в файл /tmp/catch-{дата-время-доли-секунд}.log сбрасывается список только имён загруженных модулей. Если пинг не вернётся, то цикл завершает работу. И ещё раз делается дамп списка имён запущенных модулей, последний, когда пинги уже не ходят. По идее, последние два-три файла содержат списки когда сеть есть и когда сети нет.
Если сеть не пропадает очень долго, то есть вероятность забить диск до 100%. Тут надо внимательно. Может имеет смысл заменить /tmp на другое место.