Безопасно ли делать символические ссылки для всей машины?

Если вы застряли в командной строке grub. Просто введите exit

Вы должны вернуться к окнам, как обычно.

6
задан 14 November 2017 в 17:29

6 ответов

Вы не можете сделать / символической ссылкой. Это просто невозможно. / должен быть каталогом. Если / является символической ссылкой, он указывает на какой-то путь - и для разрешения этого пути система будет проходить через /, которая является символической ссылкой, поэтому ее необходимо разрешить ... Символьная ссылка, которая указывает на себя, будет всегда вызывают ошибку, когда она разыменована, но в любом случае вы не сможете сделать / символической ссылкой, поскольку она уже является существующим каталогом.

Что вы можете сделать, и достигнете эффекта вы хотели, чтобы монтировать файловую систему NFS в качестве корневой файловой системы, вместо того, чтобы монтировать локальную файловую систему, как это обычно делается. Это возможно и поддерживается Ubuntu. Есть учебник по вики сообщества Ubuntu (он охватывает полную бездисковую установку, вы можете пропустить части о TFTP, если вы сохраните /boot локально). Перемещение существующей системы немного отличается от первоначальной установки, поэтому не ожидайте следовать руководству по этому письму.

Вам нужно убедиться, что mount содержит необходимые драйверы. Initramfs генерируется командой update-initramfs на основе текущей конфигурации системы и файлов конфигурации в /etc/initramfs-tools. Вам нужно будет явно добавить настройки NFS в . В wiki есть учебник по сообществу сообщества Ubuntu, по крайней мере, добавьте строку BOOT=nfs (я думаю, что другие параметры могут быть указаны во время загрузки, но BOOT=nfs необходимо для включения драйверов NFS, и DEVICE=… может быть необходимо также включить драйвер Ethernet). После изменения /etc/initramfs-tools/initramfs.conf запустите update-initramfs.

Я рекомендую сохранить /boot в качестве локального раздела, отдельно от /, если он еще не был.

Не используйте cp -rp /* /storage/nfs/myvmroot для копирования файлов, что не сработает. Вам нужно исключить смонтированные файловые системы из копии. Передайте параметр -x. Кроме того, используйте -a, а не -rp, есть атрибуты, которые -rp не сохраняет.

cp -ax /* /storage/nfs/myvmroot

или, если копия прервана

rsync -axAX / /storage/nfs/myvmroot

Другой, возможно, более простой вариант - сохранить корневую файловую систему локальной и только перемещать ее часть. Вы, как правило, получаете значительно лучшую производительность и надежность от локальной файловой системы, чем от NFS, даже с быстрым сервером и быстрой сетью.

Вы не можете просто вырезать в любом месте: то, что вы устанавливаете удаленно, не должно быть необходимо слишком рано в процессе загрузки. Я думаю, что сокращение на /usr официально не поддерживается Ubuntu в эти дни, но это родительский дистрибутив Ubuntu Debian, поэтому у него есть шанс работать. Другое место, которое имеет хорошие шансы на работу, - /usr/share. Я не рекомендую /var, это, вероятно, будет проблемой, если что-нибудь сломается, так как там хранятся журналы. (Если клиент NFS недоволен чем-то, и он пытается записать журналы на /var/log, но /var не отвечает, удачи, диагностируя сбой.)

10
ответ дан 22 May 2018 в 16:14
  • 1
    Я изменил команду rsync, чтобы использовать / вместо /*, потому что с /* смонтированные местоположения, такие как /proc, /sys и т. Д., Не будут нарушать параметр -x. – muru 15 November 2017 в 08:41

Вы не можете сделать / символической ссылкой. Это просто невозможно. / должен быть каталогом. Если / является символической ссылкой, он указывает на какой-то путь - и для разрешения этого пути система будет проходить через /, которая является символической ссылкой, поэтому ее необходимо разрешить ... Символьная ссылка, которая указывает на себя, будет всегда вызывают ошибку, когда она разыменована, но в любом случае вы не сможете сделать / символической ссылкой, поскольку она уже является существующим каталогом.

Что вы можете сделать, и достигнете эффекта вы хотели, чтобы монтировать файловую систему NFS в качестве корневой файловой системы, вместо того, чтобы монтировать локальную файловую систему, как это обычно делается. Это возможно и поддерживается Ubuntu. Есть учебник по вики сообщества Ubuntu (он охватывает полную бездисковую установку, вы можете пропустить части о TFTP, если вы сохраните /boot локально). Перемещение существующей системы немного отличается от первоначальной установки, поэтому не ожидайте следовать руководству по этому письму.

Вам нужно убедиться, что mount содержит необходимые драйверы. Initramfs генерируется командой update-initramfs на основе текущей конфигурации системы и файлов конфигурации в /etc/initramfs-tools. Вам нужно будет явно добавить настройки NFS в . В wiki есть учебник по сообществу сообщества Ubuntu, по крайней мере, добавьте строку BOOT=nfs (я думаю, что другие параметры могут быть указаны во время загрузки, но BOOT=nfs необходимо для включения драйверов NFS, и DEVICE=… может быть необходимо также включить драйвер Ethernet). После изменения /etc/initramfs-tools/initramfs.conf запустите update-initramfs.

Я рекомендую сохранить /boot в качестве локального раздела, отдельно от /, если он еще не был.

Не используйте cp -rp /* /storage/nfs/myvmroot для копирования файлов, что не сработает. Вам нужно исключить смонтированные файловые системы из копии. Передайте параметр -x. Кроме того, используйте -a, а не -rp, есть атрибуты, которые -rp не сохраняет.

cp -ax /* /storage/nfs/myvmroot

или, если копия прервана

rsync -axAX / /storage/nfs/myvmroot

Другой, возможно, более простой вариант - сохранить корневую файловую систему локальной и только перемещать ее часть. Вы, как правило, получаете значительно лучшую производительность и надежность от локальной файловой системы, чем от NFS, даже с быстрым сервером и быстрой сетью.

Вы не можете просто вырезать в любом месте: то, что вы устанавливаете удаленно, не должно быть необходимо слишком рано в процессе загрузки. Я думаю, что сокращение на /usr официально не поддерживается Ubuntu в эти дни, но это родительский дистрибутив Ubuntu Debian, поэтому у него есть шанс работать. Другое место, которое имеет хорошие шансы на работу, - /usr/share. Я не рекомендую /var, это, вероятно, будет проблемой, если что-нибудь сломается, так как там хранятся журналы. (Если клиент NFS недоволен чем-то, и он пытается записать журналы на /var/log, но /var не отвечает, удачи, диагностируя сбой.)

10
ответ дан 18 July 2018 в 03:18

Вы не можете сделать / символической ссылкой. Это просто невозможно. / должен быть каталогом. Если / является символической ссылкой, он указывает на какой-то путь - и для разрешения этого пути система будет проходить через /, которая является символической ссылкой, поэтому ее необходимо разрешить ... Символьная ссылка, которая указывает на себя, будет всегда вызывают ошибку, когда она разыменована, но в любом случае вы не сможете сделать / символической ссылкой, поскольку она уже является существующим каталогом.

Что вы можете сделать, и достигнете эффекта вы хотели, чтобы монтировать файловую систему NFS в качестве корневой файловой системы, вместо того, чтобы монтировать локальную файловую систему, как это обычно делается. Это возможно и поддерживается Ubuntu. Есть учебник по вики сообщества Ubuntu (он охватывает полную бездисковую установку, вы можете пропустить части о TFTP, если вы сохраните /boot локально). Перемещение существующей системы немного отличается от первоначальной установки, поэтому не ожидайте следовать руководству по этому письму.

Вам нужно убедиться, что mount содержит необходимые драйверы. Initramfs генерируется командой update-initramfs на основе текущей конфигурации системы и файлов конфигурации в /etc/initramfs-tools. Вам нужно будет явно добавить настройки NFS в . В wiki есть учебник по сообществу сообщества Ubuntu, по крайней мере, добавьте строку BOOT=nfs (я думаю, что другие параметры могут быть указаны во время загрузки, но BOOT=nfs необходимо для включения драйверов NFS, и DEVICE=… может быть необходимо также включить драйвер Ethernet). После изменения /etc/initramfs-tools/initramfs.conf запустите update-initramfs.

Я рекомендую сохранить /boot в качестве локального раздела, отдельно от /, если он еще не был.

Не используйте cp -rp /* /storage/nfs/myvmroot для копирования файлов, что не сработает. Вам нужно исключить смонтированные файловые системы из копии. Передайте параметр -x. Кроме того, используйте -a, а не -rp, есть атрибуты, которые -rp не сохраняет.

cp -ax /* /storage/nfs/myvmroot

или, если копия прервана

rsync -axAX / /storage/nfs/myvmroot

Другой, возможно, более простой вариант - сохранить корневую файловую систему локальной и только перемещать ее часть. Вы, как правило, получаете значительно лучшую производительность и надежность от локальной файловой системы, чем от NFS, даже с быстрым сервером и быстрой сетью.

Вы не можете просто вырезать в любом месте: то, что вы устанавливаете удаленно, не должно быть необходимо слишком рано в процессе загрузки. Я думаю, что сокращение на /usr официально не поддерживается Ubuntu в эти дни, но это родительский дистрибутив Ubuntu Debian, поэтому у него есть шанс работать. Другое место, которое имеет хорошие шансы на работу, - /usr/share. Я не рекомендую /var, это, вероятно, будет проблемой, если что-нибудь сломается, так как там хранятся журналы. (Если клиент NFS недоволен чем-то, и он пытается записать журналы на /var/log, но /var не отвечает, удачи, диагностируя сбой.)

10
ответ дан 24 July 2018 в 17:48
Нет. Это сделает вашу виртуальную машину не загружаемой. Система NFS загружается в определенный момент процесса загрузки. До этого момента файлы NFS не будут доступны. Это означает, что машина не сможет получить доступ к файлам, которые необходимы для загрузки. К ним относятся (но не ограничиваются) само ядро, оболочка по умолчанию /bin/sh и все под /bin, которая включает в себя команды, необходимые для монтирования общего ресурса NFS.

Нет, это не очень хорошая идея. Что еще более важно, это не обязательно. Большинство каталогов в / не очень большие. Просто определите тот, который занимает пространство и помещает его там. Вы можете перенести любое из следующих действий без каких-либо серьезных проблем:

/var/cache /usr/local /usr сам также может быть перемещен, но убедитесь, что в /usr/local/bin нет ничего существенного. Вероятно, этого не будет, но проверьте.

Возможно, те, кто занимают все пространство.

10
ответ дан 22 May 2018 в 16:14
  • 1
    Это возможно с помощью правильных initramfs. Например, возможно жить ISO ISO в сети, обслуживаемой tftpd и NFS – muru 14 November 2017 в 18:55
  • 2
    @muru ah yes, что, по-видимому, возможно, например, такие вещи, как netinstall. Хорошая точка зрения. – terdon♦ 14 November 2017 в 18:57
  • 3
    «Нет» вводит в заблуждение - ответ на заданный вопрос « mu », потому что это невозможно, поэтому его нельзя назвать «безопасным» или «небезопасным». Дальше неправильно. Вполне возможно поставить корневую файловую систему на NFS, и она поддерживается Ubuntu (вам просто нужно убедить конструктор initramfs включить соответствующий драйвер). Я не знаю, поддерживает ли Ubuntu /var отдельный раздел из /; что требует осторожности в сценариях загрузки, поэтому, если он официально не поддерживается, он, вероятно, не работает. – Gilles 14 November 2017 в 21:08
  • 4
    @ Gilles да, я ответил на вопрос, предполагая, что OP хочет просто взять свою уже существующую установку и просто переместить все под / в NFS без каких-либо изменений. Конечно, регенерация initramfs с правильными настройками должна работать, но это не было то, что было задано в вопросе. Обратите внимание на команды. Я также изменил свое предположение на /var/cache, а не на /var, чтобы быть в безопасности, и поскольку это, вероятно, тот, кто виновен, но почему /var нужно будет во время загрузки и до того, как будут установлены диски NFS? – terdon♦ 14 November 2017 в 21:13
[D0] Нет. Это сделает вашу виртуальную машину не загружаемой. Система NFS загружается в определенный момент процесса загрузки. До этого момента файлы NFS не будут доступны. Это означает, что машина не сможет получить доступ к файлам, которые необходимы для загрузки. К ним относятся (но не ограничиваются) само ядро, оболочка по умолчанию /bin/sh и все под /bin, которая включает в себя команды, необходимые для монтирования общего ресурса NFS.

Нет, это не очень хорошая идея. Что еще более важно, это не обязательно. Большинство каталогов в / не очень большие. Просто определите тот, который занимает пространство и помещает его там. Вы можете перенести любое из следующих действий без каких-либо серьезных проблем:

/var/cache /usr/local /usr сам также может быть перемещен, но убедитесь, что в /usr/local/bin нет ничего существенного. Вероятно, этого не будет, но проверьте.

Возможно, те, кто занимают все пространство.

10
ответ дан 18 July 2018 в 03:18
[D0] Нет. Это сделает вашу виртуальную машину не загружаемой. Система NFS загружается в определенный момент процесса загрузки. До этого момента файлы NFS не будут доступны. Это означает, что машина не сможет получить доступ к файлам, которые необходимы для загрузки. К ним относятся (но не ограничиваются) само ядро, оболочка по умолчанию /bin/sh и все под /bin, которая включает в себя команды, необходимые для монтирования общего ресурса NFS.

Нет, это не очень хорошая идея. Что еще более важно, это не обязательно. Большинство каталогов в / не очень большие. Просто определите тот, который занимает пространство и помещает его там. Вы можете перенести любое из следующих действий без каких-либо серьезных проблем:

/var/cache /usr/local /usr сам также может быть перемещен, но убедитесь, что в /usr/local/bin нет ничего существенного. Вероятно, этого не будет, но проверьте.

Возможно, те, кто занимают все пространство.

10
ответ дан 24 July 2018 в 17:48
  • 1
    Это возможно с помощью правильных initramfs. Например, возможно жить ISO ISO в сети, обслуживаемой tftpd и NFS – muru 14 November 2017 в 18:55
  • 2
    @muru ah yes, что, по-видимому, возможно, например, такие вещи, как netinstall. Хорошая точка зрения. – terdon♦ 14 November 2017 в 18:57
  • 3
    «Нет» вводит в заблуждение - ответ на заданный вопрос « mu », потому что это невозможно, поэтому его нельзя назвать «безопасным» или «небезопасным». Дальше неправильно. Вполне возможно поставить корневую файловую систему на NFS, и она поддерживается Ubuntu (вам просто нужно убедить конструктор initramfs включить соответствующий драйвер). Я не знаю, поддерживает ли Ubuntu /var отдельный раздел из /; что требует осторожности в сценариях загрузки, поэтому, если он официально не поддерживается, он, вероятно, не работает. – Gilles 14 November 2017 в 21:08
  • 4
    @ Gilles да, я ответил на вопрос, предполагая, что OP хочет просто взять свою уже существующую установку и просто переместить все под / в NFS без каких-либо изменений. Конечно, регенерация initramfs с правильными настройками должна работать, но это не было то, что было задано в вопросе. Обратите внимание на команды. Я также изменил свое предположение на /var/cache, а не на /var, чтобы быть в безопасности, и поскольку это, вероятно, тот, кто виновен, но почему /var нужно будет во время загрузки и до того, как будут установлены диски NFS? – terdon♦ 14 November 2017 в 21:13

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

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