Как создать на SD-карте файловую систему mkfs.ext4, доступную для записи любому пользователю?

Is it safe to cut off the power, if I assume that the volume isn't being written to at the moment and there's no stdout/stderr redirection? // If there is stdout/stderr redirection (to a file on the rw partition) on an open process, does that mean that the file is kept open as long as the process is running?

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

Will shutting off power result in a system integrity check upon reboot?

Файловая система, неправильно размонтированная/перемонтированная только для чтения -, будет обнаружена как грязная при следующем монтировании. Так как это ext4, возможен монтаж такой грязной файловой системы — тогда драйвер прилипнет к журналу. Последние изменения перед отключением питания -теряются.

0
31.05.2021, 17:09
2 ответа

Вот сценарий, который я буду использовать для форматирования будущих SD-карт, когда они будут работать.
Это прочно основано на этом ответеhttps://unix.stackexchange.com/a/422687/46470

# creates GPT partition table
# creates ext4 file system
# creates file system writable by anyone
# variables

disk_z="mmcblk0"
part_z="p1"
user_z="$USER"
password_z="password"

# issue sudo password so that password is not needed again
echo password_z | sudo -S clear

# make sure the device is not mounted
sudo umount /dev/$disk_z
sudo umount /dev/$disk_z$part_z

# Create partition table with a single full-sized partition
sudo parted -s /dev/$disk_z mklabel gpt
sudo parted /dev/$disk_z unit MiB mkpart primary 1 100%

# Create (1) "ext4" file system partition with (2) "64bit" filesystem
#     and (3) name "p1" and (4) disk label "SD_CARD"  
sudo mkfs.ext4 -F -O ^64bit -L 'SD_CARD' "/dev/$disk_z$part_z"

# tune2fs adjusts tunable filesystem parameters
#   -o    calls mount options
#    acl   enables Posix Access Control Lists to be stored 
#                                         in the filesystems metadata
# -o acl will enable the ACL to be set by "setfacl" once 
#                             the partition is mounted and this will be 
#                                       stored in the filesystems metadata
sudo tune2fs -o acl "/dev/$disk_z$part_z"

# mount the file system
sudo mount "/dev/$disk_z$part_z" /mnt

# change ownership of the mounted file system
sudo chown "$user_z": /mnt

# chmod it to have rwx permissions for everyone
sudo chmod 777 /mnt

# SET File ACL (access list) permissions for users, groups and owner to rwx in each case
#    and store this in the files systems metadata
sudo setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt

# unmount the disk
sudo umount /mnt
0
28.07.2021, 11:30

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

# Create partition table with a single full-sized partition
parted -s /dev/mmcblk0 mklabel gpt
parted /dev/mmcblk0 unit MiB mkpart primary 1 100%

# Print it out (optional)
parted /dev/mmcblk0 unit MiB print

# Create filesystem on the partition we have just made
mkfs.ext4 -L SD_CARD /dev/mmcblk0p1

# Mount it
mkdir -p /mnt/dsk
mount /dev/mmcblk0p1 /mnt/dsk

# Allow anyone to write to it
chmod 777 /mnt/dsk

Это даст вам файловую систему, в которую любой сможет писать. (У файловых систем UNIX/Linux нет владельцев. У файлов и каталогов есть владельцы. )Однако, если вы создаете файл или каталог, он становится вашим, и если вы не разрешите кому-либо писать в него, он не сможет этого сделать. Это стандартное поведение UNIX/Linux, если только оно не изменено с помощью ACL, как в ответе, связанном с

.
3
28.07.2021, 11:30

Теги

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