Вопрос "Как сделать чтобы открывался по адресу home.lan" нуждается в уточнении - из какого места "чтобы открывался"? Дело в том, что "нормальная/белая" система DNS устроена так, что от всех нормально настроенных клиентов ест ссылки, ведущие по цепочке к корневым серверам; а от корневых серверов есть ссылки на DNS-серверы для каждой зоны, тоже по цепочке.
А с самоприсвоенными зонами типа "lan" - нет цепочки от корневых серверов. Обычно такие зоны располагают на сервере, который стоит в цепочке ссылок от клиентов до корневых серверов. Однако, у Вас Ubuntu - в виртуалке, т.е. м.б. выключен, и тогда будет плохо работать доступ к нормальным сайтам.
Есть несколько схем, как это организовать. И у всех - недостатки.
PS: Изучите утилиты nslookup и dig - для анализа работы DNS.
Apache устроен так, что его процессы (их несколько, они выполняют работу) выполняют некоторое количество запросов (указано в конфиге), а затем завершают работу. На смену умершим - главный процесс (он распределяют между ними работу) запускает новые процессы. Именно процессы, а не потоки.
На компьютере или на любом роутере по дороге в Интернет - надо навесить IP-адрес 4.4.4.4 (или что там использует гугловский DNS) на любой сетевой интерфейс. И разместить на этой же системе DNS-сервер, обслуживающий клиентские запросы.
Если это решение слишком мощное (т.е. затрагивает тех, кого не нужно затрагивать), то ky0 всё верно написал. Только я бы добавил, что там нужен "статический NAT".
А зачем надо "чтоб пользователь НЕ мог подняться выше домашней папки"? Обычно это делается правами доступа - пусть лазает где хочет, его не пустят куда нельзя и не дадут изменить то что положено только читать.
Какие команды там надо выполнять? Тут тоже есть разные варианты решения - например, многие шеллы это делают.
Т.к. для передачи данных используется TCP/IP - то совершенно без разницы, WiFi, кабель или что-то ещё. Более того: WiFi довольно точно воспроизводит Ethernet на втором уровне модели OSI.
Скорее всего, дело в том, что W'10 занимает весь диск, и Linux не находит места, где он мог бы создать свой раздел. Т.е. надо уменьшить раздел, который занимает W'10.
Ещё есть вариант - Linux не видит сам HDD. Например, драйверы не смогли опознать контроллер диска. Иногда лечится изменением настроек BIOS.
Вам надо запускать это один раз или всегда после старта системы?
Во втором случае - надо стартовать как стартуют все демоны типа Apache. Про FreeBSD я бы ответил - там стартовые скрипты я знаю где лежат.
Чтобы поставить Ubuntu нужно записать образ на флешку в такой же схеме (GPT).
Интересно, с какой это радости? Логика работы инсталлятора как бы намекает, что программа, размечающая диск, никак не зависит от того, как был размечен диск инсталлятора.
Более того: инсталлятор можно записать так, что он вообще не будет иметь разделов - т.е. ему не нужны ни MBR, ни GPT, как на дискете. А инсталлятор на CD-ROM в принципе не может иметь разделы (ну или даже если может - то никто так не делает).
DNS может работать как поверх UDP (традиционный способ), так и поверх TCP (новый способ, противостоящий некоторым видам атак). Спросите у хостера, как насчёт этого?
DHCP-сервер может выдавать разным машинам разные программы_для_загрузки - ориентируясь на MAC-адрес. Не самая удобная система.
Далее программа_для_загрузки - тоже может принять решение, что ей делать (запускать нужный установщик сразу или спросить юзера). На какие признаки ориентироваться - это как фантазия программиста подскажет.
TFTP - это "тупой FTP". От простой и тупой как пробка, чтобы реализация занимала мало места, влезала в BIOS ещё в древние времена, когда ПЗУ были дорогие. Потому и медленный, особенно если сервер далеко. Это не лечится.
Для нормальной работы - сначала грузят по TFTP некий минимальный клиент, который подтягивает остальное по нормальному протоколу с большим окном (читайте про работу протокола TCP).