ошибка монтирования «не является блочным устройством»
Я пытаюсь сделать olddir
доступным с newdir
помощью команды mount:
mount olddir newdir
Почему я получаю следующую ошибку?
mount: olddir не является блочным устройством
Ответы:
mount подключает блочные устройства хранения, которые содержат файловую систему, к каталогу, а это не то, что вы пытаетесь сделать, поэтому появляется сообщение об ошибке. Вам нужно создать ссылку от нового имени каталога к старому существующему имени. Для этого вы должны использовать ln
команду для создания символической ссылки.
ln -s olddir newdir
В Linux можно выполнить привязку , которая соединит существующий каталог с новой точкой монтирования.
mount --bind <olddir> <mountpoint>
Solaris поддерживает альтернативный синтаксис:
mount -F lofs <olddir> <mountpoint>
* BSD использует mount_null
вместо этого (хотя он не поставляется с OS X).
mount_null <olddir> <mountpoint>
Если вы пытаетесь подключить логический HDD / SDD
- У меня двойная загрузка: Windows 10 / Ubuntu
- Я нашел это в поисках способа монтировать мой диск Windows в Linux
Предпринятые шаги
- показать блочные устройства
ℹ️ ваш HDD / SDD является блочным устройством хранения
sudo blkid
/dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05" /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01" /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
- В моем случае я хочу смонтировать устройство с надписью «Windows»
/dev/sda2
Что не сработало
- Оказывается, я изменил
mount
аргументы команды, чтобы получить жалобу«не является блочным устройством»
mkdir Windows sudo mount Windows /dev/sda2 mount: /dev/sda2: /home/casey/Windows is not a block device.
Что сделал работу 🤦♂️️
mount
работает как босс, когда вы перечисляете аргументы в правильном порядке!sudo mount /dev/sda2 Windows cd Windows ls Config.Msi hiberfil.sys Intel pagefile.sys ProgramData 'Program Files (x86)' '$Recycle.Bin' 'System Volume Information' WCH.CN 'Documents and Settings' home msdia80.dll PerfLogs 'Program Files' Recovery swapfile.sys Users Windows
При использовании mount shareddir newdir
получаю то же самое, потом назначаю хост сервера nfs для монтирования, получается нормально. Команда вроде:
mount host:shareddir newdir
I am trying to make olddir
accessible from newdir
with the mount command:
mount olddir newdir
Why do I get the following error?
mount: olddir is not a block device
Mat
50.6k10 gold badges154 silver badges139 bronze badges
asked Feb 2, 2012 at 6:44
0
On Linux one can perform a bind mount, which will splice an existing directory to a new mount point.
mount --bind <olddir> <mountpoint>
Solaris supports an alternate syntax:
mount -F lofs <olddir> <mountpoint>
*BSD uses mount_null
instead (although it does not come with OS X).
mount_null <olddir> <mountpoint>
answered Feb 2, 2012 at 7:15
3
mount attaches block storage devices that contain a filesystem to a directory, which is not what you’re trying to do, hence the error message. What you want is to create a link from the new directory name to the old existing name. For that you must use the ln
command to create a symbolic link.
ln -s olddir newdir
answered Feb 2, 2012 at 6:51
Kyle JonesKyle Jones
14.5k3 gold badges40 silver badges51 bronze badges
3
If you’re trying to mount a logical HDD/SDD
- I dual boot: Windows 10/Ubuntu
- I found this searching for a way to mount my Windows drive in Linux
Steps Taken
- show block devices
ℹ️ your HDD/SDD is a block storage device
sudo blkid
/dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05" /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01" /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
- In my case, I want to mount the device labeled «Windows»
/dev/sda2
What didn’t work
- Turns out I reversed the
mount
command arguments to get the «is not a block device» complaintmkdir Windows sudo mount Windows /dev/sda2 mount: /dev/sda2: /home/casey/Windows is not a block device.
What did work 🤦♂️️
mount
works like a boss when you list the arguments in the right order!sudo mount /dev/sda2 Windows cd Windows ls Config.Msi hiberfil.sys Intel pagefile.sys ProgramData 'Program Files (x86)' '$Recycle.Bin' 'System Volume Information' WCH.CN 'Documents and Settings' home msdia80.dll PerfLogs 'Program Files' Recovery swapfile.sys Users Windows
answered Oct 23, 2019 at 21:21
1
When use mount shareddir newdir
, I get the same, then I appoint the nfs server host to mount, it turns ok. The command like:
mount host:shareddir newdir
answered Jul 24, 2019 at 7:38
On Linux one can perform a bind mount, which will splice an existing directory to a new mount point.
mount --bind <olddir> <mountpoint>
Solaris supports an alternate syntax:
mount -F lofs <olddir> <mountpoint>
*BSD uses mount_null
instead (although it does not come with OS X).
mount_null <olddir> <mountpoint>
mount attaches block storage devices that contain a filesystem to a directory, which is not what you’re trying to do, hence the error message. What you want is to create a link from the new directory name to the old existing name. For that you must use the ln
command to create a symbolic link.
ln -s olddir newdir
If you’re trying to mount a logical HDD/SDD
- I dual boot: Windows 10/Ubuntu
- I found this searching for a way to mount my Windows drive in Linux
Steps Taken
- show block devices
ℹ️ your HDD/SDD is a block storage device
sudo blkid
/dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05" /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01" /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
- In my case, I want to mount the device labeled «Windows»
/dev/sda2
What didn’t work
- Turns out I reversed the
mount
command arguments to get the «is not a block device» complaintmkdir Windows sudo mount Windows /dev/sda2 mount: /dev/sda2: /home/casey/Windows is not a block device.
What did work ♂️️
mount
works like a boss when you list the arguments in the right order!sudo mount /dev/sda2 Windows cd Windows ls Config.Msi hiberfil.sys Intel pagefile.sys ProgramData 'Program Files (x86)' '$Recycle.Bin' 'System Volume Information' WCH.CN 'Documents and Settings' home msdia80.dll PerfLogs 'Program Files' Recovery swapfile.sys Users Windows
Tags:
Mount
Related
Я предполагаю, что вы как-то создали обычный файл (или, возможно, символическую ссылку на такой файл). Проверь это. Если это было блочное устройство, то на выходе
ls -l /dev/sdc1
первая буква будет b
; дополнительно
file /dev/sdc1
сказал бы block special
. Если это не так, выясните, что это за объект на самом деле. Это, вероятно, не должно быть там во-первых. Обратите внимание, что при монтировании обычного файла используется петлевое устройство, это соответствует вашему случаю.
Если объект действительно является обычным файлом или символической umount
, удалите его, а затем удалите (rm
) или уберите (mv
) с пути. Помните, что mke2fs
работает с файлом, поэтому если вы уже поместили какие-либо важные данные в файловую систему, они находятся в файле, а не в разделе.
Чтобы воссоздать правильный /dev/sdc1
как блочное устройство, вызовите sudo partprobe
. Это предполагает, что нет проблем с /dev/sdc
и его таблицей разделов. Вы также должны снова вызвать mke2fs
потому что ваш предыдущий mke2fs
даже не коснулся раздела.
Вероятная причина наличия обычного файла — запись файла изображения в /dev/sdc1
без уверенности, что цель существует (обычно как блочное устройство). Такая операция на несуществующей цели создает обычный файл.
Если проблема появляется снова (как после перезагрузки, после повторного подключения внешнего диска), это означает, что что-то воссоздает файл. Это может быть из-за плохо написанного скрипта, который предполагает, что /dev/sdc1
всегда существует. Имейте в виду, что такой скрипт может перезаписать ваш реальный раздел, когда диск подключен. Надеемся, что сценария вообще нет, и вся проблема в единственном случайном сбое, как описано выше.
Forum rules
Before you post please read how to get help. Topics in this forum are automatically closed 6 months after creation.
-
BakUp
- Level 3
- Posts: 197
- Joined: Sun Sep 23, 2007 9:20 am
- Location: Minnesota USA
/dev/sdc1 is not a block device solved
I am trying to get a usb pen-drive to boot using PlopLinux, but when I try to mount the device I get this error and it will not allow me to mount it.
Here is my info for the device:
Code: Select all
root@BakUp:~# fdisk -l
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 491 3943926 c W95 FAT32 (LBA)
looks good to me…..but now the rest…
Code: Select all
root@BakUp:~# mkdir /dev/sdc1
mkdir: cannot create directory `/dev/sdc1': File exists
root@BakUp:~# mkdir /media/usb
mkdir: cannot create directory `/media/usb': File exists
root@BakUp:~# mount /dev/sdc1 /media/usb -t vfat
mount: /dev/sdc1 is not a block device
And that is as far as I can get, I’ve done the google search thingie but was not able to sort it out.
Need more info ? Let me know. Got any ideas on how to make this a block device ? Let me know…..
thanks,
BakUp
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
-
Husse
Re: /dev/sdc1 is not a block device
Post
by Husse » Sat Nov 15, 2008 5:12 pm
root@BakUp:~# mkdir /dev/sdc1
mkdir: cannot create directory `/dev/sdc1′: File exists
Why are you root?
It may be ok if you have a lot of work to do, but generally it’s a bad idea to log in to X as root
Then
cannot create directory `/dev/sdc1′
/dev is a very special folder and you are not supposed to create anything in it
Take a look in it and you will see that sda and sdb are not folders but some strange kind of files
But it is quite possible to create that folder — just tested
So these two folders must have existed — perhaps you’ve tried to do this before
But if you created a folder sdc1 this may prevent the correct creation of sdc1 by the system. I don’t know what will happen but it’s reasonable to think so (I don’t want to try — that might break things)
Your mount command looks correct vfat is FAT32
Delete the folder you made (and please be a normal user in an X environment — there is a very instructive post by scorp123 about this somewhere in the forum)
Check that /media/usb really exists in case it’s a really nasty error
Try to mount sdc not sdc1 (this is because your usb-port can’t be recognised as sdc1 cause sdc1 should be a partition)
-
BakUp
- Level 3
- Posts: 197
- Joined: Sun Sep 23, 2007 9:20 am
- Location: Minnesota USA
Re: /dev/sdc1 is not a block device
Post
by BakUp » Sat Nov 15, 2008 7:19 pm
Husse wrote:
cannot create directory `/dev/sdc1′
ok, me bad ! I’ll remember that…..thanks
Did not need to remove it though because it removed itself after a reboot.
Check that /media/usb really exists in case it’s a really nasty error
No errors, everything is good, it just mounts the usb flash drive as /media/disk, I really do not care what it calls it as long a I can view and access the files……lol
I have to come to a conclusion from this error: not a block device is from naming it /dev/sdc1, and to top that off doing it more than once because it did not work the first time.
I think I have it sorted out……
My guess is you had created a regular file there somehow (or maybe a symlink to such file). Check it. If it was a block device then in the output of
ls -l /dev/sdc1
the first letter would be b
; additionally
file /dev/sdc1
would say block special
. If this is not the case, investigate what the object really is. It probably shouldn’t be there in the first place. Note mounting a regular file uses a loop device, this fits your case.
If the object is indeed a regular file or a symlink, umount
it, then remove (rm
) or move (mv
) it out of the way. Keep in mind mke2fs
operated on the file, so if you already put any important data in the filesystem, it’s in the file, not in the partition.
To recreate a proper /dev/sdc1
as a block device, invoke sudo partprobe
. This assumes there is no problem with /dev/sdc
and its partition table. You should also invoke mke2fs
again because the partition wasn’t even touched by your previous mke2fs
.
A plausible cause of having a regular file there is writing an image file to /dev/sdc1
without making sure the target exists (normally as a block device). Such operation on an nonexistent target creates a regular file.
If the problem reappears (like after reboot, after connecting the external drive again) it means something recreates the file. This may be due to some poorly written script that assumes /dev/sdc1
always exists. Be warned such script can overwrite your actual partition when the drive is connected. Hopefully there is no script at all and the whole problem is because of one-time mishap as described above.
I created a container with volume mount to /dev/xvda1:/dev/xvda1
but when I tried to mount it to a folder it doesn’t work:
root@ubuntu:/# docker run -v /dev/xvda1:/dev/xvda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash
root@690798858fcf:/# mkdir /mnt0
root@690798858fcf:/# ls /dev
console core fd full mqueue null ptmx pts random shm stderr stdin stdout tty urandom xvda1 zero
root@690798858fcf:/# mount /dev/xvda1 /mnt0
mount: /mnt0: /dev/xvda1 already mounted on /etc/resolv.conf.
root@690798858fcf:/# umount /dev/xvda1
root@690798858fcf:/# mount /dev/xvda1 /mnt0
mount: /mnt0: /dev/xvda1 is not a block device; try "-o loop".
root@690798858fcf:/# mount -o loop /dev/xvda1 /mnt0
mount: /mnt0: mount failed: Operation not permitted.
If I create it with --privileged
flag it works:
root@ubuntu:/# docker run --privileged --cap-add=SYS_ADMIN --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash
root@aa36dd8be903:/# mkdir /mnt0
root@aa36dd8be903:/# mount /dev/xvda1 /mnt0
root@aa36dd8be903:/#
Why -v /dev/xvda1:/dev/xvda1
is not enough?
Info about my system:
# ubuntu image
root@ubuntu:/# uname -r
5.4.0-1034-aws
root@ubuntu:/# docker -v
Docker version 20.10.7, build f0df350
I created a container with volume mount to /dev/xvda1:/dev/xvda1
but when I tried to mount it to a folder it doesn’t work:
root@ubuntu:/# docker run -v /dev/xvda1:/dev/xvda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash
root@690798858fcf:/# mkdir /mnt0
root@690798858fcf:/# ls /dev
console core fd full mqueue null ptmx pts random shm stderr stdin stdout tty urandom xvda1 zero
root@690798858fcf:/# mount /dev/xvda1 /mnt0
mount: /mnt0: /dev/xvda1 already mounted on /etc/resolv.conf.
root@690798858fcf:/# umount /dev/xvda1
root@690798858fcf:/# mount /dev/xvda1 /mnt0
mount: /mnt0: /dev/xvda1 is not a block device; try "-o loop".
root@690798858fcf:/# mount -o loop /dev/xvda1 /mnt0
mount: /mnt0: mount failed: Operation not permitted.
If I create it with --privileged
flag it works:
root@ubuntu:/# docker run --privileged --cap-add=SYS_ADMIN --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash
root@aa36dd8be903:/# mkdir /mnt0
root@aa36dd8be903:/# mount /dev/xvda1 /mnt0
root@aa36dd8be903:/#
Why -v /dev/xvda1:/dev/xvda1
is not enough?
Info about my system:
# ubuntu image
root@ubuntu:/# uname -r
5.4.0-1034-aws
root@ubuntu:/# docker -v
Docker version 20.10.7, build f0df350
I am trying to make olddir
accessible from newdir
with the mount command:
mount olddir newdir
Why do I get the following error?
mount: olddir is not a block device
Mat
51.3k10 gold badges156 silver badges139 bronze badges
asked Feb 2, 2012 at 6:44
0
On Linux one can perform a bind mount, which will splice an existing directory to a new mount point.
mount --bind <olddir> <mountpoint>
Solaris supports an alternate syntax:
mount -F lofs <olddir> <mountpoint>
*BSD uses mount_null
instead (although it does not come with OS X).
mount_null <olddir> <mountpoint>
answered Feb 2, 2012 at 7:15
4
mount attaches block storage devices that contain a filesystem to a directory, which is not what you’re trying to do, hence the error message. What you want is to create a link from the new directory name to the old existing name. For that you must use the ln
command to create a symbolic link.
ln -s olddir newdir
answered Feb 2, 2012 at 6:51
Kyle JonesKyle Jones
14.7k3 gold badges40 silver badges51 bronze badges
3
If you’re trying to mount a logical HDD/SDD
- I dual boot: Windows 10/Ubuntu
- I found this searching for a way to mount my Windows drive in Linux
Steps Taken
- show block devices
ℹ️ your HDD/SDD is a block storage device
sudo blkid
/dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05" /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01" /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
- In my case, I want to mount the device labeled «Windows»
/dev/sda2
What didn’t work
- Turns out I reversed the
mount
command arguments to get the «is not a block device» complaintmkdir Windows sudo mount Windows /dev/sda2 mount: /dev/sda2: /home/casey/Windows is not a block device.
What did work 🤦♂️️
mount
works like a boss when you list the arguments in the right order!sudo mount /dev/sda2 Windows cd Windows ls Config.Msi hiberfil.sys Intel pagefile.sys ProgramData 'Program Files (x86)' '$Recycle.Bin' 'System Volume Information' WCH.CN 'Documents and Settings' home msdia80.dll PerfLogs 'Program Files' Recovery swapfile.sys Users Windows
answered Oct 23, 2019 at 21:21
1
When use mount shareddir newdir
, I get the same, then I appoint the nfs server host to mount, it turns ok. The command like:
mount host:shareddir newdir
answered Jul 24, 2019 at 7:38
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.
ошибка монтирования «не является блочным устройством»
Я пытаюсь сделать olddir
доступным с newdir
помощью команды mount:
mount olddir newdir
Почему я получаю следующую ошибку?
mount: olddir не является блочным устройством
Ответы:
mount подключает блочные устройства хранения, которые содержат файловую систему, к каталогу, а это не то, что вы пытаетесь сделать, поэтому появляется сообщение об ошибке. Вам нужно создать ссылку от нового имени каталога к старому существующему имени. Для этого вы должны использовать ln
команду для создания символической ссылки.
ln -s olddir newdir
В Linux можно выполнить привязку , которая соединит существующий каталог с новой точкой монтирования.
mount --bind <olddir> <mountpoint>
Solaris поддерживает альтернативный синтаксис:
mount -F lofs <olddir> <mountpoint>
* BSD использует mount_null
вместо этого (хотя он не поставляется с OS X).
mount_null <olddir> <mountpoint>
Если вы пытаетесь подключить логический HDD / SDD
- У меня двойная загрузка: Windows 10 / Ubuntu
- Я нашел это в поисках способа монтировать мой диск Windows в Linux
Предпринятые шаги
- показать блочные устройства
ℹ️ ваш HDD / SDD является блочным устройством хранения
sudo blkid
/dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05" /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01" /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
- В моем случае я хочу смонтировать устройство с надписью «Windows»
/dev/sda2
Что не сработало
- Оказывается, я изменил
mount
аргументы команды, чтобы получить жалобу«не является блочным устройством»
mkdir Windows sudo mount Windows /dev/sda2 mount: /dev/sda2: /home/casey/Windows is not a block device.
Что сделал работу 🤦♂️️
mount
работает как босс, когда вы перечисляете аргументы в правильном порядке!sudo mount /dev/sda2 Windows cd Windows ls Config.Msi hiberfil.sys Intel pagefile.sys ProgramData 'Program Files (x86)' '$Recycle.Bin' 'System Volume Information' WCH.CN 'Documents and Settings' home msdia80.dll PerfLogs 'Program Files' Recovery swapfile.sys Users Windows
При использовании mount shareddir newdir
получаю то же самое, потом назначаю хост сервера nfs для монтирования, получается нормально. Команда вроде:
mount host:shareddir newdir
On Linux one can perform a bind mount, which will splice an existing directory to a new mount point.
mount --bind <olddir> <mountpoint>
Solaris supports an alternate syntax:
mount -F lofs <olddir> <mountpoint>
*BSD uses mount_null
instead (although it does not come with OS X).
mount_null <olddir> <mountpoint>
mount attaches block storage devices that contain a filesystem to a directory, which is not what you’re trying to do, hence the error message. What you want is to create a link from the new directory name to the old existing name. For that you must use the ln
command to create a symbolic link.
ln -s olddir newdir
If you’re trying to mount a logical HDD/SDD
- I dual boot: Windows 10/Ubuntu
- I found this searching for a way to mount my Windows drive in Linux
Steps Taken
- show block devices
ℹ️ your HDD/SDD is a block storage device
sudo blkid
/dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05" /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01" /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
- In my case, I want to mount the device labeled «Windows»
/dev/sda2
What didn’t work
- Turns out I reversed the
mount
command arguments to get the «is not a block device» complaintmkdir Windows sudo mount Windows /dev/sda2 mount: /dev/sda2: /home/casey/Windows is not a block device.
What did work ♂️️
mount
works like a boss when you list the arguments in the right order!sudo mount /dev/sda2 Windows cd Windows ls Config.Msi hiberfil.sys Intel pagefile.sys ProgramData 'Program Files (x86)' '$Recycle.Bin' 'System Volume Information' WCH.CN 'Documents and Settings' home msdia80.dll PerfLogs 'Program Files' Recovery swapfile.sys Users Windows
Tags:
Mount
Related
0
1
Копирую с помощью dd раздел диска
dd if=/dev/sdb1 of=файл
копрую файл на другую машину
dd if=файл of=/dev/sdb1
Cкопировал, пытаюь смонтировать
mount /dev/sdb1 /media
mount: /dev/sdb1 is not a block device (maybe try `-o loop’?)
с -o loop монтируется
Почему не монтируется в естественном состоянии (без дополнительных опций)?
- Ссылка
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.