Спасибо за ответ, все заработало после инициализации переменных. Закономерный вопрос возникает тогда. Каким образом возможна попытка записи в чужую память? Насколько мне известно, имя переменной (если брать из одного кадра стека) эквивалентно адресу памяти, в который будут писаться данные. Выше, в этом-же кадре определена переменная i(непроинициализированна), а цикл for просто обращается и пишет в эту переменную. Логично могу предположить, что все ошибки связаны с тем, что в адресах непроинициализированных переменных лежит какой-то мусор, который и вредит всей программе.
Алексей Черемисин, Попробую. Одного не понимаю - в опциях ядру указывается параметр initrd=/boot/initramfs.img. Как ядро находит этот образ, если не может смонтировать тот раздел, на котором он лежит?
Vitsliputsli, Это понятно. Но мы-же передаем зачем-то путь корневого раздела в опциях ядру, а не загрузчику. Зачем это нужно, ведь initrс скрипт и так знает, что ему нужно монтировать?
В ядре же нет драйверов для ext4. Тогда что будет грузить "детектор оборудования"? И как он узнает о других жестких дисках, если мы указывает только root-раздел? Они, конечно, указаны в fstab, но для этого сначала нужно же корень смонтировать из initrd...
Спасибо за ответ. Вы сказали, что "детектор оборудования" грузит драйвера, но разве в ядре есть драйвера для ext4? И тогда почему мы не указываем пути ко всем жестким дискам, чтобы этот детектор их нашел и подгрузил нужные драйвера? Как я понимаю, это все указано в fstab, но чтобы его прочитать сперва нужно примонтировать настоящий корень, а он монтируется из initrd.
АртемЪ, Перепутал коммутатор с маршрутизатором.
Как я читал, коммутатор, если в его таблице маршрутизации нету того IP, на который узел хочет отправить пакет, то этот коммутатор перекидывает эти пакеты на шлюз. Тут и рождается мое непонимание. С этой точки зрения можно предположить, что тут и не нужно знать "где находится дверь дома", так как тот, кто устраивает экскурсию по дому(коммутатор) и так приведет к этой двери.
Благодарю за ответ, но некоторые моменты остались непонятыми:
1. Получается, маршрутизатор и шлюз могут быть разделены на 2 устройства?
2. Как я читал, маршрутизатор, если в его таблице маршрутизации нету того IP, на который узел хочет отправить пакет, то этот маршрутизатор перекидывает эти пакеты на шлюз. Тут и рождается мое непонимание. С этой точки зрения можно предположить, что тут и не нужно знать "где находится дверь дома", так как тот, кто устраивает экскурсию по дому(маршрутизатор) и так приведет к этой двери.
Andrew D., Хм, получается в пакете, формированном на начальном узле должно быть три IP-адреса? Первый - адрес шлюза, второй - белый адрес назначения и третий - серый адрес хоста-отправителя?
Andrew D., Адресованы какому-то внешнему хосту с белым адресом, но идти же в любом случае, даже если шлюз не указан, должны через него, т.к. узел с которого эти пакеты отсылаются подключен по патчкорду к роутеру. Разве он не должен просматривать эти пакеты и запоминать, какому порту вернуть ответ от сервера?
Понял. Спасибо. Еще есть вопрос. У меня имеется ssh узел в локале по адресу 192.168.0.120. Я настраиваю проброс порта 45456(внутренний 22) на 192.168.0.120. Почему я не могу подключится по ssh на мой сервер по адресу 192.168.0.1(шлюз) с портом 45456. С моей точки зрения, пакеты должны побежать к шлюзу, а так как в нем настроен переброс порта на 192.168.0.120, то эти пакеты должны побежать на сервак. Почему этого не происходит?