LINUX.ORG.RU

Вопрос по команде cat


0

1

Такая ситуация при копировании разделов командой cat (cat /dev/sda1 > /dev/sdb1) если копируемый раздел меньше то тот на который копируется раздел становится такого же объема, если наоборот то выдает ошибку даже если файлов мало и при обычном переносе такого бы не случилось кто может объясните мне пожалуста если не сложно.

если копируемый раздел меньше то тот на который копируется раздел становится такого же объема

Естественно, необычный юзкейс для утилиты cat. Пользуйтесь специализированным софтом.

если наоборот то выдает ошибку даже если файлов мало и при обычном переносе такого бы не случилось кто может объясните мне пожалуста если не сложно.

«Пустые» сектора тоже копируются. В случае dd у вас будет та же проблема. Пользуйтесь специализированным софтом.

bhfq ★★★★★
()
Ответ на: комментарий от bhfq

мне не нужен другой софт. мне просто необходимо узнать что при этом происходит. мне вот интересно нюанс при копировании маленького раздела на большой

stoperviy
() автор топика

ты скопировал фс с радела с размером == размеру меньшего раздела. Размер фс != размер раздела, меняй размер фс до нужного размера == размеру большего раздела

parrotx
()
Ответ на: комментарий от parrotx

мне не нужно это исправлять объясни принцип че там происходит вот есть 20 гигов копирую на 40 гигов выходит оба по 20. мне курсач защищать препод это спрашивал почему такая херь выходит н не спрашивал как исправить

stoperviy
() автор топика
Ответ на: комментарий от stoperviy

Так, смотри. Ты копируешь содержимое одного диска на другой. В том числе копируется и таблица разделов. Если на первом размечено 20 гигов, а второй диск 40 гигов, но при клонировании на втором в неразмеченное пространство попадет... правильно, 20 гигов.

netcat ★★
()
Ответ на: комментарий от netcat

Он не диск копирует, а раздел, у него фс тоже копируется, фс не резиновая чтобы сама подстраиваться, ему нужно ресайзить.

bhfq ★★★★★
()
Ответ на: комментарий от stoperviy

тебе, ****, по-русски написано в предыдущем посте. Есть размер раздела(условно он есть) — это «правая граница - левая граница» в таблице разделов на носителе. А есть размер фс(информация в суперблоках о количестве секторов занимаемой фс). Когда ты создаешь фс на раздел, размер фс == размеру раздела(логично). А когда ты копируешь ФС cat - ты копируешь ФС с ее размером, а не раздел. ФС и cat блджад не провидцы и динамически размер фс не меняют.

parrotx
()
Ответ на: комментарий от parrotx

можно было по человечески написать а не краказябрами. но все равно всем спасибо

stoperviy
() автор топика

Зря единственную запятую поставил, без нее было бы еще круче.

leave ★★★★★
()

вот если взять ник и скопировать в раздел большего размера, станешь ли ты стовторым? а если в раздел меньшего размера, будешь ли ты сотым? )))

chg ★★★★★
()

man Знаки препинания, школота

anonymous
()

Основной принцип линукса, в нем все сущности представлены в виде файла, даже устройства, в своей команде ты копируешь файл /dev/sda1 в файл /dev/sdb1, поэтому и размер у них одинаковый.

vxzvxz ★★★
()

Командой cat разделы не копируют. Используй dd.

dd if=/dev/sda1 of=/dev/sdb1 bs=4M
Если исходный раздел меньше конечного, то попробуй
fsck /dev/sdb1
И, как уже сказали, обзаведись софтиной для этого дела. Clonezilla - один из вариантов того, что тебе нужно.

TheX
()
Ответ на: комментарий от TheX

Командой cat разделы не копируют. Используй dd.

Когда время поджимает и уверен, что целевой носитель в полном порядке, нормально использовать именно cat вместо dd. В среднем запись образа на флеш носитель происходит быстрее в 1,5 раза. P.S. Нахватаются верхов и лезут со всякими клонзиллами...

anonymous
()
Ответ на: комментарий от stoperviy

Ты даже здесь забыл точку, школотун.

anonymous
()

Тебе нужно изменить размер файловой системы это не то же самое что размер раздела это вещи разные независимо от того сколько на ней места занято она может хранить данные в конце и при переносе с помощью команды cat файловой системы с большего по размеру раздела на меньший по размеру раздел эти данные писать будет некуда а изменение размера файловой системы с помощью соответствующей утилиты resize2fs для ext2-4 перенесет данные в начало раздела и тогда они не потеряются как знаки препинания в этом предложении.

ei-grad ★★★★★
()
Последнее исправление: ei-grad (всего исправлений: 2)
Ответ на: комментарий от netcat

Да конечно.
Твоя очень катит.

Так, смотри. Ты копируешь содержимое одного диска на другой. В том числе копируется и таблица разделов. Если на первом размечено 20 гигов, а второй диск 40 гигов, но при клонировании на втором в неразмеченное пространство попадет... правильно, 20 гигов.

причем тут таблица разделов, он раздел на раздел копирует, а не с диска на диск. А раздел - это файл, расположеный на блочном устройстве и имеющий вполне определенный размер.

vxzvxz ★★★
()

cat /dev/sda1 > /dev/sdb1

О! Мисье знает толк в извращениях!

actics
()
Ответ на: комментарий от anonymous

Когда время поджимает


Когда время поджимает, манипуляции с разделами не производятся (Исключая сервера). Ну или я себе не могу такие представить...

уверен, что целевой носитель в полном порядке, нормально использовать именно cat вместо dd.


Здесь у меня нет аргумента в пользу dd.

В среднем запись образа на флеш носитель происходит быстрее в 1,5 раза.


Спасибо, не знал, учту.
Олсо ТС ничего не говорил про запись образа на флеш накопитель, да и я сказал таки про разделы жёсткого диска и их копирование (в пределах одного диска), а не про запись таковых на носители.

P.S. Нахватаются верхов и лезут со всякими клонзиллами...


Я очень рад за тебя и твои познания глубин кроличьей норы, но т.к. способы с верхов проигрывают только по времени (о котором никакой речи не шло), то почему бы и не лезть?


И чем же тебе клонзилла не угодила? Если нужно скопировать корневой раздел, то она вполне удобна и применима для этих целей.

TheX
()
Ответ на: комментарий от anonymous

Не знают :D


А если серьёзно, то понятия не имею. Сколько раз сталкивался с примерами манипуляции разделами HDD, но нигде не видел применение cat'a - возможно есть какие-то подводные камни.

TheX
()

У меня два ведра 3 и 5 литров если из меньшего налить в большее то в нём становится 3 литра воды а если из большего в меньшее то ведро переполняется кто может объясните мне пожалуста если не сложно.

harm
()
Ответ на: комментарий от vxzvxz

С моим объяснением выше уже разобрались и скорректировали.

причем тут таблица разделов, он раздел на раздел копирует, а не с диска на диск. А раздел - это файл, расположеный на блочном устройстве и имеющий вполне определенный размер.

А вот мне так не кажется. Вот если ты сделаешь cat file.txt > file2.txt, то размер файла 2 станет равным размеру 1, потому что он зависит от содержимого. Размер раздела от содержимого зависит едва ли (таблица разделов оказывается при делах), поэтому при клонировании ФС, которая создана для меньшего раздела, возникает неразмеченное пространство, если так его можно назвать.

netcat ★★
()
Последнее исправление: netcat (всего исправлений: 1)

кат читает файл и выводит(>) в другое место
грубо говоря,фс занимает некое место - файл
едро его читает и видит
нужно расширить фс на весь раздел - юзай gparted так проще!

ubuntuawp ★★
()
Ответ на: комментарий от netcat

Раздел это файл, который размещается на физическом диске и занимает вполне определенное количество блоков данных на нем, которые в свою очередь и обуславливают его размер, поэтому размер раздела и не может зависит от содержимого, он зависит от числа блоков которые занимает на диске. Таблица разделов просто описывает где и какие разделы на диске находятся и сколько объема под каждый выделено.

В той команде cat /dev/sda1 > /dev/sdb1 cat-ом считываются не данные расположенные внутри файловой системы раздела, а блоки данных которые занимает сам раздел на диске(являющимся блочным устройством), поэтому по размеру /dev/sda1 = /dev/sdb1

Кроме того разделы на диске могут существовать и без таблицы разделов, ее вообще может не быть, но при это весь диск например /dev/sda можно примонтировать и использовать как один большой файл

vxzvxz ★★★
()
Ответ на: комментарий от vxzvxz

я просто перевел твое сообщение в несколько простой вид

ubuntuawp ★★
()

OMG! я так вижу, читать даже зотя бы man уже совсем немодно?

тот кто написал про 3 и 5л банки - молодец!

mumpster ★★★★★
()

Копировать разделы и диски можно всем, что способно прочесть и записать файл, это и dd, pv, bar, cat, dcfldd, dd_rescue и т.д., а так же их сочетанием с архиваторами и друг с другом. Если же есть задача перенести раздел с большего на меньший, то здесь более всего подошел бы rsync, монтируешь эти разделы и синхронизируешь содержание их ФС сохраняя атрибуты и права доступа файлов и каталогов, например так:

rsync -aqxP /home/* /mnt/md1

vxzvxz ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.