Portál AbcLinuxu, 12. listopadu 2025 06:44
hda1 a statickým nějaký rozdíl? Tj. liší se třeba výpis ls -l?
debian:/dev# ls -l | grep hda1 brw-rw---- 1 root floppy 3, 1 Apr 10 17:47 hda1 ------------------------------------- debian:/dev# ls -l /dev/.static/dev/ | grep hda1 brw-rw---- 1 root disk 3, 1 Mar 26 01:53 hda1
/etc/udev (asi), tam je nějaký soubor s pravidýlky, tam je asi KERNEL="hd*", GROUP="floppy". Ale závisí no va verzi udev.
SUBSYSTEM=="block", GROUP="disk"
SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy"
debian:~# strace /dev/hda1
execve("/dev/hda1", ["/dev/hda1"], [/* 14 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl64(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat64(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4e000
_llseek(3, 0, 0xbf9618a8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n", 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0xb7f4e000, 4096) = 0
exit_group(1) = ?
--------------------
debian:~# strace /dev/.static/dev/hda1
execve("/dev/.static/dev/hda1", ["/dev/.static/dev/hda1"], [/* 14 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl64(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat64(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f20000
_llseek(3, 0, 0xbff33698, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n", 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0xb7f20000, 4096) = 0
exit_group(1) = ?
debian:~# strace mkfs.ext3 /dev/hda1
execve("/sbin/mkfs.ext3", ["mkfs.ext3", "/dev/hda1"], [/* 14 vars */]) = 0
uname({sys="Linux", node="debian", ...}) = 0
brk(0) = 0x8050000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd4000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=11037, ...}) = 0
old_mmap(NULL, 11037, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fd1000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libext2fs.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`M\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=97268, ...}) = 0
old_mmap(NULL, 96124, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7fb9000
old_mmap(0xb7fd0000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0xb7fd0000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libcom_err.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\t\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=5792, ...}) = 0
old_mmap(NULL, 8848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7fb6000
old_mmap(0xb7fb8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb7fb8000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libblkid.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\36\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=28556, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fb5000
old_mmap(NULL, 31576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7fad000
old_mmap(0xb7fb4000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xb7fb4000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libuuid.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\n\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=8696, ...}) = 0
old_mmap(NULL, 11680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7faa000
old_mmap(0xb7fac000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb7fac000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libe2p.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\22"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=18512, ...}) = 0
old_mmap(NULL, 17968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7fa5000
old_mmap(0xb7fa9000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xb7fa9000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1270928, ...}) = 0
old_mmap(NULL, 1276892, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e6d000
old_mmap(0xb7f9b000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12e000) = 0xb7f9b000
old_mmap(0xb7fa3000, 7132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fa3000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e6c000
mprotect(0xb7f9b000, 20480, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e6c8e0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7fd1000, 11037) = 0
brk(0) = 0x8050000
brk(0x8071000) = 0x8071000
uname({sys="Linux", node="debian", ...}) = 0
write(2, "mke2fs 1.39-WIP (31-Dec-2005)\n", 30mke2fs 1.39-WIP (31-Dec-2005)
) = 30
stat64("/dev/hda1", {st_mode=S_IFBLK|0660, st_rdev=makedev(3, 1), ...}) = 0
stat64("/dev/hda1", {st_mode=S_IFBLK|0660, st_rdev=makedev(3, 1), ...}) = 0
open("/proc/swaps", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd3000
read(3, "", 1024) = 0
close(3) = 0
munmap(0xb7fd3000, 4096) = 0
open("/proc/mounts", O_RDONLY) = 3
stat64("/dev/hda1", {st_mode=S_IFBLK|0660, st_rdev=makedev(3, 1), ...}) = 0
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd3000
read(3, "rootfs / rootfs rw 0 0\n/dev/root"..., 1024) = 304
stat64("rootfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("/dev/root", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("proc", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("sysfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("usbfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("/dev/root", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("tmpfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("tmpfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("devpts", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("/dev/hdd", {st_mode=S_IFBLK|0660, st_rdev=makedev(22, 64), ...}) = 0
read(3, "", 1024) = 0
stat64("/", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(3) = 0
munmap(0xb7fd3000, 4096) = 0
open("/etc/mtab", O_RDONLY) = 3
stat64("/dev/hda1", {st_mode=S_IFBLK|0660, st_rdev=makedev(3, 1), ...}) = 0
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd3000
read(3, "rootfs / rootfs rw 0 0\n/dev/root"..., 1024) = 304
stat64("rootfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("/dev/root", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("proc", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("sysfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("usbfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("/dev/root", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("tmpfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("tmpfs", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("devpts", 0xbf8e9eec) = -1 ENOENT (No such file or directory)
stat64("/dev/hdd", {st_mode=S_IFBLK|0660, st_rdev=makedev(22, 64), ...}) = 0
read(3, "", 1024) = 0
stat64("/", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(3) = 0
munmap(0xb7fd3000, 4096) = 0
stat64("/dev/hda1", {st_mode=S_IFBLK|0660, st_rdev=makedev(3, 1), ...}) = 0
open("/dev/hda1", O_RDONLY|O_EXCL) = 3
close(3) = 0
open("/dev/hda1", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
write(2, "mkfs.ext3", 9mkfs.ext3) = 9
write(2, ": ", 2: ) = 2
write(2, "No such file or directory", 25No such file or directory) = 25
write(2, " ", 1 ) = 1
write(2, "while trying to determine filesy"..., 41while trying to determine filesystem size) = 41
write(2, "\r\n", 2
) = 2
exit_group(1) = ?
...
open("/dev/hda1", O_RDONLY|O_EXCL) = 3
close(3) = 0
open("/dev/hda1", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
...
Tohle je zajímavé. To vypadá, že po provedení close() přestane existovat speciální soubor /dev/hda1. Kernel asi vyvolá unplug událost (což by podle mě neměl dělat), na kterou udev zareaguje odstraněním toho speciálního souboru...
Nejsou v dmesg nějaké hlášky o tom, že by to zařízení bylo odpojeno a hned zase připojeno zpět? Jinak si to neumím vysvětlit.
hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1 hda: hda1
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.