Если ping 1.1.1.1 или ping 8.8.8.8 работает – значит проблема с DNS, можно прописать их в resolv.conf

Если при пинге по IP получите в ответ что-то вроде access denied – это андроид блокирует доступ к сети приложению, из которого запущена "песочница", в которой стоит Арч. Тогда надо проверить разрешения приложения в андроиде.
c.o.d.e.m.a.s.t.e.r, к сожалению, о вашей сети недостаточно данных, чтобы ответить что-то определённое.
Вы назвали диапазоны адресов, динамически раздаваемых роутерами по DHCP, насколько я понимаю, но этого мало.

Можно нагадать на кофейной гуще множество вариантов и их комбинаций, поэтому, пожалуйста, ответьте на вопросы:
1) Что понимается под роутерами – обычные "домашние" роутеры или что-то иное?
2) Как компьютеры подключены к роутерам – вайфай, витая пара, то и другое?
3) Как роутеры соединены между собой и с интернетом? Они вообще как-то соединены?
4) Через какой порт (WAN или LAN, в случае "домашних" роутеров),они подключены к "вышестоящей" сети (общей для них обоих, если она есть) ?
5) Как этот порт настроен на роутерах?

Я понимаю, вам хочется готового рецепта, но фокус в том, что если всё так, как я думаю, и ваш вариант соединения худший из возможных (если оба роутера соединены только интернетом), зайти с одного на другой будет сложно, и в зависимости от реализации подключения, может быть даже невозможно.

Если роутеры, допустим, раздают только вайфай, а проводная сеть действует отдельно от них, и подключена через порт WAN, то как минимум, вам нужно разрешить в файрволле каждого входящий SSH, и обращаться с одного на другой по внешнему IP, назначенному у роутера на интерфейсе порта WAN.

Если роутеры только раздают вайфай, но НЕ используются для принудительной изоляции вайфая от проводной сети, описанная вами схема с двумя диапазонами вообще не имеет смысла – гораздо проще подключить их к проводной сети через порт LAN, предварительно выключив в них DHCP. После этого все подключаемые к роутерам компьютеры будут получать IP из диапазона проводной сети, независимо от роутера, и смогут общаться между собой напрямую.
Я думаю, вы совершенно напрасно ковыряли диск, и без толку переустанавливали загрузчик.

Скорей всего, дело в настройках вашего UEFI (который вы называете BIOS), которые "исправила" форточка во время манипуляций с ней.
Поскольку вы устанавливали GRUB для режима UEFI, вам и загружаться с диска надо в режиме UEFI, а не в режиме совместимости с BIOS.
Судя по тому, как вы устанавливали загрузчик, теперь вам надо искать в настройках загрузки UEFI строчку с идентификатором "GRUB".

Кроме того, при загрузке с LiveCD вы тоже почему-то загрузились именно в режиме BIOS, судя по по предупреждениям "EFI variables are not supported on this system". Как раз в этом месте grub-install пытался восстановить настройки UEFI своим способом, но они были недоступны, потому что LiveCD стартовал НЕ из режима UEFI.
sed: -e выражение #1, символ 51: неизвестный параметр '?'
Я тоже это встречал, только написать забыл, просто проследил баг до скрипта startx, и недолго думая, выкинул рудимент из моего локального скрипта x, заменив вызов startx непосредственно на xinit.
Я сейчас не помню всех грязных подробностей, но вы копаете хоть и в правильном направлении, но не совсем правильными инструментами.

Я тоже использую Xcompose, только не по Caps (она у меня переключает на русский), а по AltGr.
Настраивалось это у меня командой
setxkbmap -option compose:ralt
и всё работало, пока однажды не поломалось при обновлении.

Вскрытие показало, что проблему принес пакет xorg-setxkbmap, в который один (русский) разработчик внёс замечательное "усовершенствование" – захардкодил на AltGr какое-то другое действие, причём только для русской раскладки, на английской всё работало по-прежнему!
А когда я копнул ещё глубже, оказалось, что а английскую (американскую) раскладку тоже когда-то вносилось подобное "улучшение", но более многочисленные англоязычные юзеры линукса воспротивились нововведению гораздо раньше, и его отменили.

После долгих препирательств в багтреккере мне удалось убедить разработчика убрать хардкод из русской раскладки, но "осадочек остался", и теперь Xcompose у меня настраивается более низкоуровневой коммандой, для AltGr она выглядит так:
xmodmap -e "keycode 108 = Multi_key NoSymbol Multi_key"

К чему я это всё пишу – setxkbmap это довольно нестабильная и ненадёжная надстройка над другими утилитами. В ней много хардкода, и периодически могут возникать подобные "багофичи". Если у вас что-то перестало работать с setxkbmap – или пишите багрепорты, или пользуётесь низкоуровневыми утилитами, вроде xmodmap, так вы меньше будете зависеть от метаний разработчиков, и возможности по настройке у вас будут шире.
Если разгоняли – уберите разгон.
Но не буду обнадёживать – эти артефакты указывают на повреждение содержимого оперативной памяти, в которой хранится изображение.
Теоретически, это могут быть баги видеодрайвера, но скорей всего – физическое повреждение самой памяти. Если у вас дискретная видеокарта – эта память впаяна именно в неё, и заменить память отдельно от видеокарты будет проблематично.
Рад за вас, но насколько я понял, эта опция отключает приём от сервера вообще всех роутов, а не только дефолтного.
Единственный роут в туннель, который у вас остаётся – автоматически создаваемый при назначении адреса (или подсети) интерфейсу tun0.

К примеру, если вы (в консоли от рута) выполните команду
ip addr add 10.11.12.13/24 dev tun0
она не только добавит интерфейсу адрес 10.11.12.13 с подсетью /24, но ещё и создаст роут, направляющий подсеть 10.11.12.0/24 в туннель.

Поскольку адрес и подсеть передаются сервером OpenVPN отдельно от роутов, опция route-nopull не помешает этому единственному роуту появиться так же, как при выполнении этой команды.

Если вам его достаточно, вы действительно решили проблему.
В противном случае однажды вы обнаружите, что вам недоступны некоторые адреса VPN, находящиеся в других подсетях.
Насколько я понимаю, роуты ваша клиентская часть OpenVPN получает от сервера, и в их числе приходит дефолтный роут в VPN.
В этом случае всё просто – от сервера ваш клиент получает только адреса для роутов на туннель, а метрики вы можете спокойно задать в клиентском конфиге.
Чем больше метрика, тем ниже приоритет роута среди роутов своей подсети, то есть ваш местный дефолтный роут станет более приоритетным, чем дефолтный роут в туннель.

Чтобы изменить метрику получаемых от сервера роутов, нужно дописать в ваш client.ovpn строчку вида
route-metric 300
и перезапустить OpenVPN.
Вместо 300 можете вписать любое число больше, чем у вашего "родного" дефолтного роута в интернет.
В итоге у вас должно оказаться два дефолтный роута сразу, в интернет с меньшей метрикой (или без неё), и в туннель с заданным вами числом, примерно так:
$ ip route
192.168.1.1/24 dev eth0 scope link src 192.168.1.2 metric 100
10.11.12.13/24 dev tun0 scope link metric 300
default via 192.168.1.1 dev eth0 metric 100
default dev tun0 scope link metric 300

Если вы не видите одновременно оба роута, значит у них обоих метрика была равна нулю, и один заменялся другим. В этом случае сначала отключите OpenVPN, потом переподключитесь к своей сети, чтобы восстановился нормальный дефолтный роут, и после этого запустите уже перенастроенный OpenVPN.
Похоже на проблемы с видеопамятью.
Если у вас дискретная видеокарта – виновата она или её драйвер.
Если только встроенная графика, можно начинать проверки с memtest.
allepta
Попробовал изменить имя хоста в файле.
/etc/hostname
127.0.0.1 examplehost
Что за … ?

Значит так.
1) localhost это имя для адреса "петли" 127.0.0.1, а не имя хоста. На каждом компьютере оно предназначено для обращения к своим собственным портам.
2) строчка 127.0.0.1 localhost.localdomain localhost уже прописана в /etc/hosts, и в ней ничего менять не нужно.
3) В /etc/hostname должно быть только одно слово – имяхоста, никаких localhost, никаких IP, никаких доменов и т.д.