пользовательская человечность живой CD: NetworkManager, не работающий

Я пытаюсь создать человечность живой CD с нуля, но я перестал работать с автоматической конфигурацией для сетевой карты. Живой CD загружается в рабочий стол, но NetworkManager застревает, чтобы быть ненастроенным. Конфигурация/etc/network/interfaces является нетронутой, поэтому она должна быть настроена NetworkManager, но это не. Когда настольная среда загружается, NetworkManager отключен без настроенного соединения.

Что случилось с моей конфигурацией?


Для репродуцирования - как я создаю свой живой CD:

Вам нужно:

apt install build-essential debootstrap squashfs-tools genisoimage syslinux-common syslinux-utils

теперь скопируйте основную систему с исходной ISO:

mount -o loop kubuntu-16.10-desktop-amd64.iso /mnt/tmp/
mkdir -p /usr/local/src/custom-ubuntu/iso && cd /usr/local/src/custom-ubuntu/iso
cp -r /mnt/tmp/.disk/ .
cp -r /mnt/tmp/boot/ .
cp -r /mnt/tmp/isolinux/ .
cp -r /mnt/tmp/EFI/ .
mkdir casper

создайте мини-человечность

debootstrap --arch amd64 yakkety /usr/local/src/custom-ubuntu/squashfs

смонтируйте устройства и chroot в squashfs

cd /usr/local/src/custom-ubuntu/
mount --bind /dev squashfs/dev
mount -t devpts devpts squashfs/dev/pts
mount -t proc proc squashfs/proc
mount -t sysfs sysfs squashfs/sys
cp /etc/resolv.conf squashfs/etc/
cp /etc/apt/sources.list squashfs/etc/
chroot squashfs

установите свои любимые программы для Вашего живого CD. В моем случае это

apt install bash-completion ssh vim gpm htop iotop cifs-utils ntp mc rar unrar unace arj p7zip-full apt-file lsb-release dmidecode hdparm realpath acpid aptitude unzip ncdu di localepurge console-data gnu-fdisk intel-microcode amd64-microcode sysstat bc unattended-upgrades btrfs-progs btrfs-tools hfsplus hfsprogs hfsutils exfat-fuse exfat-utils ntfs-3g gparted gpart gddrescue linux-image-generic linux-signed-generic linux-signed-image-generic linux-firmware  linux-base linux-tools-generic linux-wlan-ng linux-headers-generic grub-efi casper lupin-casper ubiquity-casper firefox okular libreoffice libreoffice-kde gtk2-engines-oxygen gtk3-engines-breeze k4dirstat meld partitionmanager gsmartcontrol 
apt clean

Установите свою любимую настольную среду.

оставьте chroot и скопируйте новое ядро

cp squashfs/boot/initrd.img-4.8.0-27-generic iso/casper/initrd.lz
cp squashfs/boot/vmlinuz-4.8.0-27-generic iso/casper/vmlinuz.efi

umount и моются:

umount squashfs/dev/pts
umount squashfs/dev
umount squashfs/proc
umount squashfs/sys
rm squashfs/etc/resolv.conf

Теперь Вы закончены, и пора создать файловую систему сквоша и создать файл ISO:

mksquashfs squashfs iso/casper/filesystem.squashfs -noappend
genisoimage -cache-inodes -r -J -joliet-long -input-charset utf-8 -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -o live.iso iso
isohybrid -u live.iso
1
задан 10 January 2017 в 12:30

17 ответов

Отобразите сервлет контроллера на более определенном url-pattern как /pages/*, поместите статическое содержание в определенную папку как /static и создайте Filter слушание на /*, который прозрачно продолжает цепочку для любого статического содержания и отправляет запросы сервлету контроллера для другого содержания.

Вкратце:

<filter>
    <filter-name>filter</filter-name>
    <filter-class>com.example.Filter</filter-class>
</filter>
<filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>controller</servlet-name>
    <servlet-class>com.example.Controller</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>controller</servlet-name>
    <url-pattern>/pages/*</url-pattern>
</servlet-mapping>

со следующим в фильтре doFilter():

HttpServletRequest req = (HttpServletRequest) request;
String path = req.getRequestURI().substring(req.getContextPath().length());

if (path.startsWith("/static")) {
    chain.doFilter(request, response); // Goes to default servlet.
} else {
    request.getRequestDispatcher("/pages" + path).forward(request, response);
}

нет, это не заканчивается с /pages в адресной строке браузера. Это полностью прозрачно. Можно при необходимости сделать "/static" и/или "/pages" init-param из фильтра.

71
ответ дан 1 November 2019 в 03:05

При использовании Tomcat можно отобразить ресурсы на сервлет по умолчанию:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

и доступ Ваши ресурсы с URL http://{путь контекста}/static/res/...

Также работы с Причалом, не уверенным в других контейнерах сервлета.

17
ответ дан 1 November 2019 в 03:05

То, что Вы делаете, добавляет желанный файл в Вашем web.xml

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

И затем добавляет это к Вашим отображениям сервлета так, чтобы, когда кто-то переходит к корню Вашего приложения, они были отправлены в index.html внутренне, и затем отображение внутренне отправит их в сервлет, Вы отображаете его на

<servlet-mapping>
    <servlet-name>MainActions</servlet-name>
    <url-pattern>/main</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>MainActions</servlet-name>
    <url-pattern>/index.html</url-pattern>
</servlet-mapping>

Конечный результат: Вы посещаете Приложение/, но Вам дарят/Application/MainActions сервлет, не разрушая никакие другие корневые запросы.

Получают его? Таким образом, Ваше приложение все еще находится в sub URL, но автоматически представлено, когда пользователь переходит к корню Вашего сайта. Это позволяет, Вы, чтобы иметь/images/bob.img все еще переходите к обычному месту, но '/' Ваше приложение.

19
ответ дан 1 November 2019 в 03:05

Относительно Tomcat много зависит от конкретной версии. Было исправление ошибки https://bz.apache.org/bugzilla/show_bug.cgi? id=50026, что означает отображение сервлета (кроме для '/') для сервлета по умолчанию, ведет себя по-другому в Tomcat 6.0.29 (и ранее) по сравнению с более поздними версиями.

0
ответ дан 1 November 2019 в 03:05

С Spring 3.0.4. ВЫПУСК и выше можно использовать

<mvc:resources mapping="/resources/**" location="/public-resources/"/>

, Как замечено в Ссылка Spring .

43
ответ дан 1 November 2019 в 03:05

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

Это было дырой в системе безопасности в Tomcat (СЕТЬ-INF, и содержание META-INF доступно этот путь), и это было зафиксировано в 7.0.4 (и будет портирован к 5.x и 6.x также). †“BalusC 2 ноября '10 в 22:44

, который помог мне много. И вот то, как я решил его:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
16
ответ дан 1 November 2019 в 03:05

С 3.0.4 необходимо смочь использовать mvc:resources в сочетании с mvc:default-servlet-handler, как описано в пружинной документации для достижения этого.

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources

9
ответ дан 1 November 2019 в 03:05

Причина коллизии, кажется, потому что по умолчанию корень контекста, "/", должен быть обработан org.apache.catalina.servlets. DefaultServlet. Этот сервлет предназначается для обрабатывания запросов для статических ресурсов.

, Если Вы решаете ударить его из пути с Вашим собственным сервлетом с намерением обрабатывания динамических запросов, тот сервлет верхнего уровня должен также выполнить любые задачи, выполненные исходным обработчиком catalina "DefaultServlet".

, Если Вы прочитываете документы кота, они упоминают, что Истинный Apache (httpd) лучше, чем Tomcat Apache для обработки статического содержания, так как это - цель, созданная, чтобы сделать просто это. Мое предположение то, потому что Tomcat использованием по умолчанию org.apache.catalina.servlets. DefaultServlet для обрабатывания статических запросов. Так как это все обернуто в JVM, и Tomcat предназначается к как контейнер Servlet/JSP, они, вероятно, не записали что класс как супероптимизированный статический обработчик содержимого. Это там. Это сделало задание. Достаточно хороший.

, Но это - вещь, которая обрабатывает статическое содержание, и это живет в "/". Таким образом, если Вы помещаете что-либо еще там, и та вещь не обрабатывает статические запросы, ВОЗГЛАСЫ, там идет Ваши статические ресурсы.

я искал высоко и низко для того же ответа и ответа, который я получаю, везде, "если Вы не хотите, чтобы он сделал это, не делайте этого".

Такая длинная короткая история, Ваша конфигурация перемещает статический обработчик ресурсов по умолчанию с чем-то, что не является статическим обработчиком ресурсов вообще. Необходимо будет попробовать другую конфигурацию для получения результатов, которые Вы ищете (как будет I).

5
ответ дан 1 November 2019 в 03:05

Добавьте папки, которые Вы не хотите инициировать обработку сервлета к <static-files> раздел Вашего файла appengine-web.xml.

я просто сделал это и похож на вещи, начинают работать хорошо. Вот моя структура:

/

/pages/< файлы .jsp>

/css

, я добавил "/страницы / **" и "/CSS / **" к эти <static-files>, раздел и я может теперь передать .jsp файлу из сервлета doGet, не вызывая бесконечный цикл.

1
ответ дан 1 November 2019 в 03:05

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

Вместо того, чтобы служить "/*" в моем основном Сервлете, я теперь только слушаю специализированные префиксы языка "EN", "EN/*", "DE", "DE/* "

Статическое содержание подается Сервлетом по умолчанию, и пустые корневые запросы переходят к index.jsp, который звонит моему основному Сервлету с языком по умолчанию:

< страница jsp:include = "/EN /"/> (никакое другое содержание на индексной странице.)

1
ответ дан 1 November 2019 в 03:05

Лучший способ обработать это использует некоторую перезапись URL. Таким образом у Вас могут быть чистые успокоительные URL, а НЕ с любыми расширениями т.е. abc.com/welcom/register в противоположность abc.com/welcome/resister.html

, я использую Tuckey URL, который довольно прохладен.

Это имеет инструкции относительно того, как настроить Ваше веб-приложение. Я настроил его со своим Spring веб-приложение MVC. Конечно, все было прекрасно, пока я не хотел использовать аннотации для Spring 3 проверки как @Email или @Null для объектов области.

, Когда я добавляю Spring mvc директивы:

< mvc:annotation-driven  /> 
< mvc:default-servlet-handler />

.. это взламывает хороший ol код Tuckey. По-видимому, < mvc:default-servlet-handler /> замены Tuckey, который я все еще пытаюсь решить.

2
ответ дан 1 November 2019 в 03:05

'Статические' файлы в Механизме Приложения не непосредственно доступны Вашему приложению. Или необходимо загрузить их дважды или служить статическим файлам сами, вместо того, чтобы использовать статический обработчик.

3
ответ дан 1 November 2019 в 03:05

Я нашел, что использование

<mvc:default-servlet-handler />

в пружинном бобовом файле определения сервлета MVC работает на меня. Это передает любой запрос, который не обработан зарегистрированным контроллером MVC на исходном обработчике контейнера по умолчанию, который должен служить ему в качестве статического содержания. Просто удостоверьтесь, что у Вас нет контроллера, зарегистрированного, который обрабатывает все, и это должно работать просто великолепно. Не уверенный, почему @logixplayer предлагает перезапись URL; можно достигнуть эффекта, он ищет просто соответственно использование Spring один только MVC.

1
ответ дан 1 November 2019 в 03:05

Я рекомендовал бы пытаться использовать Фильтр вместо сервлета по умолчанию, когда это возможно.

Другие две возможности:

Запишите FileServlet сами. Вы найдете много примеров, это должно просто открыть файл URL и записать его содержание в поток вывода. Затем используйте его для обслуживания статического запроса файла.

Инстанцируйте класса FileServlet, используемого Google App Engine и обслуживанием вызовов (запрос, ответ) на том, что FileServlet, когда необходимо будет служить статическому файлу в данном URL.

Можно отобразить/res /* к YourFileServlet или безотносительно исключить его из обработки DispatcherServlets или назвать его непосредственно от DispatcherServlet.

И, я должен спросить, что документация Spring говорит об этой коллизии? Я никогда не использовал его.

0
ответ дан 1 November 2019 в 03:05

Я нашел простое решение с фиктивным индексным файлом.

Создают Сервлет (или используйте тот, который Вы хотели ответить на "/"), который отображается на "/index.html" (Решения, упомянутые здесь, используют отображение через XML, я использовал 3,0 версии с аннотацией @WebServlet), Затем создают статический (пустой) файл в корне статического содержания под названием "index.html"

, я использовал Причал, и что произошло, был то, что сервер распознал файл вместо того, чтобы перечислить каталог, но при просьбе относительно ресурса мой Сервлет взял на себя управление вместо этого. Все другое статическое содержание осталось незатронутым.

0
ответ дан 1 November 2019 в 03:05

Во Встроенном Причале мне удалось достигнуть чего-то подобного путем добавления отображения для каталога "CSS" в web.xml. Явно говоря этому использовать DefaultServlet:

<servlet>
  <servlet-name>DefaultServlet</servlet-name>
  <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>DefaultServlet</servlet-name>
  <url-pattern>/css/*</url-pattern>
</servlet-mapping>
0
ответ дан 1 November 2019 в 03:05
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<mvc:default-servlet-handler/>
</beans>

и если Вы хотите использовать основанное на аннотации использование конфигурации ниже кода

@Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
0
ответ дан 1 November 2019 в 03:05

Другие вопросы по тегам:

Похожие вопросы: