Как я могу изменить размер своего корневого раздела в Debian?

Они ограничены по объему процессом

Другие отвечающие стороны помогли мне понять, что объем переменной оболочки о процессах и их потомках.

Когда Вы вводите команду как ls на командной строке Вы на самом деле разветвляете процесс для выполнения ls программа. Новый процесс имеет Вашу оболочку как своего родителя.

Любой процесс может иметь свои собственные "локальные" переменные, которые не передаются дочерним процессам. Это может также установить переменные "среды", которые являются. Используя export создает переменную среды. В любом случае несвязанные процессы (коллеги оригинала) не будут видеть переменную; мы только управляем тем, что видят дочерние процессы.

Предположим, что у Вас есть оболочка удара, которую мы назовем A. Вы вводите bash, который создает оболочку удара дочернего процесса, которую мы назовем B. Что-либо Вы звонили export на в A будет все еще установлен в B.

Теперь, в B, Вы говорите FOO=b. Одна из двух вещей произойдет:

  • Если B не получил (от A) названную переменную среды FOO, это создаст локальную переменную. Дети B не получат его (если B не будет звонить export).
  • Если B действительно получал (от A) названную переменную среды FOO, это изменит его для себя и его впоследствии разветвленных детей. Дети B будут видеть значение это присвоенный B. Однако это не будет влиять вообще.

Вот быстрая демонстрация.

FOO=a      # set "local" environment variable
echo $FOO  # 'a'
bash       # forks a child process for the new shell
echo $FOO  # not set
exit       # return to original shell
echo $FOO  # still 'a'

export FOO # make FOO an environment variable
bash       # fork a new "child" shell
echo $FOO  # outputs 'a'
FOO=b      # modifies environment (not local) variable
bash       # fork "grandchild" shell
echo $FOO  # outputs 'b'
exit       # back to child shell
exit       # back to original shell
echo $FOO  # outputs 'a'

Все это объясняет мою исходную проблему: Я установил GEM_HOME в моей оболочке, но когда я звонил bundle install, это создало дочерний процесс. Поскольку я не использовал export, дочерний процесс не получил оболочку GEM_HOME.

Неэкспорт

Можно "не экспортировать" переменную - препятствуют тому, чтобы он был передан детям - при помощи export -n FOO.

export FOO=a   # Set environment variable
bash           # fork a shell
echo $FOO      # outputs 'a'
export -n FOO  # remove environment var for children
bash           # fork a shell
echo $FOO      # Not set
exit           # back up a level
echo $FOO      # outputs 'a' - still a local variable
12
13.04.2017, 15:36
2 ответа

Если сделано тщательно, можно использовать gparted изменить размер Ваших разделов безопасно.

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

6
27.01.2020, 19:56
  • 1
    Согласиться. Я использовал gparted прочь и на изменить размер разделов в виртуальной серверной среде, и он работает как очарование. –  Shadur 03.12.2012, 13:23
  • 2
    , Что делает резервное копирование допустимым? –  Santropedro 11.12.2015, 15:57

Может стоить упомянуть, что альтернативно, можно переместить большие каталоги в другой раздел (например, путем монтирования/dev/sdb3 на / var). Будьте осторожны, хотя, поскольку система может не загрузиться, если некоторые данные не доступны (т.е. если Вы перемещаете их в раздел, который не смонтирован при начальной загрузке).

0
27.01.2020, 19:56

Теги

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