Проблема решена.
Казалось, что таблица разделов была повреждена.
Как комментарий psusi:
Затем да, у Вас был раздел на диске прежде, чем запуститься в обычном местоположении сектора 2048. Воссоздайте раздел, и все должно быть прекрасным.
Я не знал, как воссоздать раздел. таким образом, я сделал это, и проблема решила (данные там, и диск монтируется снова правильно):
Я работал sudo testdisk
.
После выбора моего выбранного диска I Analyse
и выбранный Quick Search
затем не изменяя найденный раздел я продолжал затем экранировать (Хит Входят) на этом экране, который я выбрал Write
для записи структуры раздела к диску. затем я отключил и повторно включил диск к системе и теперь ее штрафу.
Спасибо всем за Вашу справку особенно "psusi"
Вы можете установить TMPFS
Partititon и напишите там файл:
mount -t tmpfs -o size=500m tmpfs /mountpoint
Этот раздел сейчас ограничен до 500 МБ. Если ваш временный файл растет больше 500 МБ, произойдет ошибка: Нет места, оставленного на устройстве
. Но, не имеет значения, когда вы указываете большее количество пространства, чем ваша система RAM. TMPFS
также использует пространство SWAP, поэтому вы не можете заставить аварию системы, в отличие от RAMFS
.
Теперь вы можете написать свой файл в / MountPoint
:
command | tee /mountpoint/scriptnameYYYYMMDD.txt
Попробуйте это с Ubuntu:
ramtmp="$(mktemp -p /dev/shm/)"
tac scriptnameYYYYMMDD.txt > "$ramtmp"
Следующий ответ был обнаружен в результате исследования предыдущих ответов и информации в этом вопросе здесь и не был бы найден без них. Cudos им.
В моей системе linuxmint (и я предполагаю, что в большинстве систем на основе ubuntu и, возможно, на основе Debian) есть пользовательские tmpfs, автоматически смонтированные на / run / user / 1000 /
Используйте df - T
для проверки.
11:41:11 jesse@Limbo:~$ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on udev devtmpfs 15904812 4 15904808 1% /dev tmpfs tmpfs 3184120 1700 3182420 1% /run /dev/sdb2 ext4 14248880 11464788 2037240 85% / none tmpfs 4 0 4 0% /sys/fs/cgroup none tmpfs 5120 0 5120 0% /run/lock none tmpfs 15920584 848 15919736 1% /run/shm none tmpfs 102400 12 102388 1% /run/user /dev/sdb3 ext4 100861352 90755700 4959136 95% /mnt/data
В разделе / run / user /
есть каталог для каждого обычного пользователя в системе.
12:07:35 jesse@Limbo:~$ ls -l /run/user
total 0
drwx------ 2 root root 40 Aug 7 09:50 0
drwx------ 8 jesse jesse 180 Aug 7 11:38 1000
Эти каталоги названы по идентификаторам соответствующих пользователей. Мы можем получить идентификатор пользователя с помощью id -u
, подробнее об этой команде см. man id
.
12:07:43 jesse@Limbo:~$ ls -l /run/user/$(id -u)
total 0
drwx------ 2 jesse jesse 60 Aug 7 09:50 dconf
dr-x------ 2 jesse jesse 0 Aug 7 09:50 gvfs
drwx------ 2 jesse jesse 80 Aug 7 09:50 pulse
lrwxrwxrwx 1 root root 17 Aug 7 09:50 X11-display -> /tmp/.X11-unix/X0
Затем мы можем использовать команду mktemp
с параметром - tmpdir
для создания временных файлов и каталогов в этой системе временных файлов, таким образом создавая временные файлы в ОЗУ.
Следуя совету здесь , я сначала создаю временный каталог, а затем создаю в нем свои временные файлы:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
для создания временного каталога /run/user/1000/bash.w42BYxbG /
затем
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
, чтобы создать в нем временный файл.
Это упрощает очистку этого файла, поскольку все, что мне нужно сделать, это rm -r $ mydir
.
По умолчанию все эти файлы принадлежат и доступны для чтения только пользователю, который их создал.
Примечание. Часть команды
$ (basename $ 0)
извлекает имя сценария / процесса, выполнившего mktemp. Если у меня есть сценарий/home/jesse/scripts/myScript.sh
, то$ (basename $ 0)
возвращаетmyScript.sh
при выполнении этим сценарием.Таким образом, приведенные выше команды создадут/run/user/1000/myScript.sh.w42BYxbG/
и/run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
соответственно.