부팅 한 현재 디스크를 복사 할 수 있습니까?


23

라이브 USB 디스크에서 실행되는 FreeNAS 사본이 있습니다. 그리고 나는 그것을 백업하고 싶습니다.

완벽하게 작동하는 시스템을 손상시키지 않으려 고 시도하는 dd동안 OS가 실행되는 동안 디스크를 사용할 수 있습니까?

아니면 머신을 종료하고 dd다른 머신 을 종료해야 합니까?

답변:


16

dd실행중인 디스크에서 실행할 수 있습니다 . 디스크 구조에 큰 변화가있을 때는 그렇게하지 않아야합니다. 또한 fschk일단 완료되면 목적지 가되어야 합니다. 백업하는 동안 시스템이 더 조용할수록 좋습니다.

`dd '를 사용하려면 콜드 백업 (파일 시스템 마운트 해제)을 실행하는 것이 가장 좋습니다.

실행중인 시스템을 백업하기위한 더 나은 옵션이 있습니다.

  • tar또는 cpio파일을 읽고 열린 파일을 합리적으로 처리합니다. 백업 중에 발생하는 일부 변경 사항이 누락 될 수 있습니다.
  • rsynctar열린 파일 및 백업 중에 변경 사항이없는 것처럼 작동 합니다. 초기 백업을 수행하는 데 사용할 수 있으며 증분 백업을 매우 잘 수행합니다. 증분 백업을 실행하면 변경되지 않은 파일 부분 복사를 건너 뛸 수 있습니다.

데이터베이스 데이터 파일로 파일 시스템을 백업하는 경우 핫 백업에 대한 지원을 조사하십시오.


- 높은 수준의 도구 사용에 대한 좋은 점 tar, cpio그리고 rsync모든 작업 파일 시스템 내를 이 적합 할 수 있도록. ddOTOH는 FS를 무시하고 디스크 블록과 직접 작동합니다.
Piskvor

16

그것은이다 기술적으로 가능한 디스크의 파티션 중 하나가 쓸 수있는 특히, ( "촬영 - 스스로 - 인 - 더 - 발"에서와 같이), 그러나 매우 바람직하지 않다.

이 시나리오를 묘사하십시오 :

  • dd 시작 부분에서 디스크를 읽기 시작하고 끝까지 즐겁게 진행됩니다.
  • 중간에 있으면 OS가 파일을 디스크에 씁니다. 파일은 다소 조각화되어 있습니다. 파일의 한 부분은 실제로 디스크의 시작 부분을 향하고 다른 부분은 끝 부분을 향합니다.
  • OS에는 아무런 문제가 없습니다. 파일을 잘 작성하고 쓰기 캐시에서 밀어냅니다. 이제 디스크에 올바르게 기록됩니다.
  • 문제는 백업과 관련 dd이 있습니다. 이미 파일의 첫 번째 부분을지나 복사하여 두 번째 부분에 도달하면 일관성이없는 상태를 캡처합니다. 각 부분은 다른 버전에서 나옵니다!

당신이와 USB 디스크의 모든 파티션을 다시 마운트 할 수있는 경우 읽기 전용,이 문제는 ( "강조 발생하지 않습니다 해야 하지를"); 이것은 /파티션에 대한 사전 설치 / 오프라인 준비 및 부팅 시간 설정이 필요합니다. 일반적으로 /r / o를 즉시 다시 마운트 할 수 있다고 생각하지 않습니다. r / w가 필요한 몇 가지 사항이 있습니다. 접속하다.

따라서 복사본을 실행해도 실행중인 시스템이 손상 되지는 않지만 작업 가능한 내용을 렌더링하여 실행 가능한 백업을 제공하지는 않습니다 . 복사본을 오프라인으로 만드는 것이 좋습니다. 컴퓨터를 종료해야합니다.


1
큰 답변을 주셔서 감사합니다, 나는 쉬운 탈출구를 기대하고 있었지만, 당신이 옳았습니다, 당신이 지적한 것에서 발생하는 좋은 시나리오를 상상할 수 없습니다.
stuartc

1
@stuartc : 그것은 필요 주요 FS 드라이버에서 협력 - 복사가 시작된 이후 일어난 모든 변화의 복사 과정을 알리는를, 그리고 일관성있는 상태에 도달 여부. 이것이 중대한 문제인 경우와 같이 스냅 샷을 지원하는 파일 시스템을 살펴보십시오 btrfs.
Piskvor

4

마운트 된 파티션의 이미지를 작성해서는 안됩니다. 부팅 여부에 관계없이.

그러나 부팅 한 파티션을 마운트 해제하는 데 어려움을 겪을 수 있습니다.


4

이를 위해 dump(8)FreeBSD를 사용 합니다. 예 :dump -auLf /mnt/some-other-disk/root.dmp /

-L옵션을 사용하면 스냅 샷을 만들어 라이브 파일 시스템을 복사 할 수 있습니다.

을 사용하여 덤프를 복원 할 수 있습니다 restore(8).

UFS에서만 작동 할 수 있습니다. 확실하지 않습니다.


0

다음을 언급하지 않은 백업 팁 수는 놀랍습니다.

백업 및 복원하는 동안 Linux 시스템 (및 대부분의 다중 스레드 OS)은 일반적으로 정지 상태 여야합니다.

이미지를 생성하는 동안 OS를 실행하지 않으면 가장 쉽게 수행 할 수 있습니다.

백업 및 복원을 위해 마운트 할 수 있으며 실제로는 실행중인 OS가 루트 (/)가 아니어야합니다.


이유 : 모든 멀티 태스킹 운영 체제 (리눅스 포함)에는 파일 전체에 영향을주는 동시 코드 스레드가있어 시스템 전체의 파일 세트 백업 또는 복원을 정확하게 수행 할 수 없습니다.

특히 파일을 가져 오는 동안 백업이 특정 시점에 파일 시스템의 진실하고 정확한 이미지를 나타내지 않도록 파일을 작성하거나 삭제하는 다른 작업이있을 수 있습니다. 이 백업을 복원하려고하면 데이터 손상이 발생하여 충돌 및 다른 예외가 발생할 수 있습니다.


옵션 : 백업은 특수 소프트웨어 및 / 또는 디스크 시스템 (예 : 실행중인 OS를 백업 할 수있는 Windows의 Acronis와 같은) 또는 수행하려는 실행되지 않는 OS 파일에 액세스하는 외부 보조 OS에 의해 수행되어야합니다. 백업 또는 복원.

!!! 따라서 백업을 수행하기 위해 Deja-dup 을 사용하라는 웹 페이지가 표시 /home되면 /homedeja-dup을 실행하는 동안 영향을 받는 프로그램을 실행하지 않는 경우 에만 작동합니다 . (그리고 심지어 데몬을 통해 파일을 만질 수있는 것이 무엇인지 실제로 알지 않는 한 손가락을 가로 질러 가고 싶을 수도 있습니다.)


0

나는 이미 테스트 환경에서 성공적으로 장치를 복사 할 수 있도록 fsck 및 rsync를 사용 하여이 작업을 이미 수행합니다.


1
rsync로 만든 전체 디스크 (전체 파일 시스템) 덤프를 개선하는 데  사용하는 방법을 설명 할 수 있습니까 dd? (그리고 액세스 권한이 있으면 rsync보조 보조 도구가 아닌 기본 백업 도구로 사용하지 않는 이유는 무엇입니까?)………………………  명확하고 완전하게 답변을 편집 하십시오.
스캇
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.