cp -p filename filename.tmp
mv -f filename.tmp filename
Создание его scriptable:
dir=$(dirname -- "$filename")
tmp=$(TMPDIR=$dir mktemp)
cp -p -- "$filename" "$tmp"
mv -f -- "$tmp" "$filename"
Выполнение копии сначала, затем перемещение ее в место, имеют преимущество, которое файл атомарно изменяет от того, чтобы быть жесткой ссылкой на то, чтобы быть отдельной копией (нет никакого смысла вовремя где filename
является неравнодушным или недостающим).
Если, например,
mount /dev/sda1 /mnt/tmp
выводит
mount: /dev/sda1 is already mounted or /mnt/tmp busy
проверку, есть ли какой-либо процесс, использующий это устройство (/ dev / sda1).
Часто это процесс fsck, который запускается автоматически при запуске системы. Вы можете быстро проверить его, например, by
ps aux | grep sda1
Я столкнулся с такой ситуацией. Опыт и решение описаны в моем блоге .
Фрагмент здесь:
Ошибка: mount: / dev / mapper / STORBCK-backup уже смонтирован или / STORBCK занят?
Диагностика: Когда мы пытаемся смонтировать / STORBCK FS мы получаем вышеупомянутую ошибку.
Решение: 1. Поскольку Другая FS стала доступной только для чтения, я остановил / запустил службу iscsi. он успешно вошел в систему. /etc/init.d/iscsi stop / etc / init.d / iscsi start https: //manastri.blogspot .in / 2016/11 / mount-devmapperstorbck-backup-already.html
Еще в 5.x RHEL по умолчанию использовал LVM. Прежде чем вы сможете монтировать тома LVM, вам нужно будет сделать несколько шагов.
Если вы использовали то же имя VG на новом диске, что и на старом, у вас есть небольшая проблема :у вас есть две VG с одинаковым именем. Чтобы однозначно идентифицировать VG, которыми вы хотите управлять (, то есть ту, что на /dev/sdb
), вам понадобятся UUID VG. Беги:
# pvs -o +vg_uuid
, чтобы вывести список всех обнаруженных PV LVM, включая их VG UUID. Вы также увидите имя VG каждого раздела, чтобы увидеть, есть ли конфликты имен.
LVM в общем и целом достаточно умен, чтобы не испортить активную конфигурацию VG, если только вы не изо всех сил пытаетесь ее запутать. Поэтому, если вышеупомянутая -упомянутая команда pvs
ничего не покажет на /dev/sdb
, запустите vgscan
и повторите попытку.
Зная UUID VG, вы можете использовать команду vgrename для переименования любых конфликтующих VG. Если нет конфликтов имен,вы можете перейти к vgchange
.
(Чтобы смонтировать LV (s )внутри VG, вам необходимо активировать VG, а VG не активируется, если его имя конфликтует с уже существующим VG.)
Команда для переименования ВГ выглядит следующим образом:
vgrename Zvlifi-Ep3t-e0Ng-U42h-o0ye-KHu1-nl7Ns4 new_name_for_vg
, где алфавитный суп Zvlifi-...
— это UUID VG, а другой параметр — просто новое имя для этой VG.
После того, как конфликты имен виртуальных групп разрешены (или если конфликтов вообще нет ), вам необходимо активировать виртуальные группы (с )на /dev/sdb
. Вы можете просто активировать все не активированные -VG, которые LVM видит с помощью этой команды:
vgchange -ay
При активации виртуальной группы имена устройств (ссылки )любых LV внутри нее будут отображаться как /dev/mapper/<VG name>-<LV name>
. (Также как /dev/<VG name>/<LV name>
из соображений совместимости с предыдущими версиями.)
Теперь вы можете установить их как обычно.